М.Двач / Программирование

Этого треда уже нет.
Это копия, сохраненная 2 сентября 2018 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

C++ №73 /cpp/ 3 июля, 01:22 1221619 В конец треда | Веб

32 Кб, 600x4007,2 Мб, 3840x2555

Вместо шапки — https://github.com/sosachbot/cppthreadhat/wiki
Ответы на все вопросы:
- http://en.cppreference.com/w/
- http://www.cplusplus.com/reference/

Прошлый: >>1208905 (OP)

Ответы21642234942592426401

3 июля, 02:00 2 1221639

Первый

3 июля, 02:07 3 1221642

>>1221619 (OP)
Наткнулся на непонимание std::forward() и решил сделать эксперимент. Суть токова: есть шаблонная функция, которая принимает один аргумент и возвращает на него умный указатель unique_ptr. В функцию можно передать lvalue или rvalue. Передавать можно по значению, неконстантной lvalue ссылке, константной lvalue ссылке или rvalue ссылке. (Кстати, для этого дела есть русские слова? А то самого слегка кумарит переключать раскладку туда-сюда.)

Я проверил все эти варианты, вот что из этого вышло: https://ideone.com/X0lFrl

Кратко выводы. После задействования forward()
- становится возможно передавать rvalue по значению,
- передавать копируемое lvalue и всякие rvalue по неконстантной lvalue ссылке становится невозможно,
- передача по константной lvalue ссылке не изменяется,
- ранее недоступная передача по rvalue ссылке становится доступна для всех рассмотренных типов,
- покуда тип это определяет, передача безымянного по значению подменяется передачей по rvalue ссылке,
- Я забыл рассмотреть тип, который можно копировать, но нельзя перемещать.

Спасибо тому, кто меня натолкнул на этот эксперимент https://2ch.hk/pr/res/1208905.html#1221373 (М)

Ответы2164321647

3 июля, 02:11 4 1221643

>>1221642
1. У тебя в секции "\nBY RVALUE REFERENCE\n" передаются только rvalue-параметры.
2. Перемещать несколько раз одну и ту же переменную - это UB. Лучше инициализируй каждый раз новые.
3. У тебя там нет const T&&, т.е. передачи по константной rvalue-ссылке.

Ответы2164421667

3 июля, 02:15 5 1221644

>>1221643
>Перемещать несколько раз одну и ту же переменную - это UB.
Пруф.

Ответы21646

3 июля, 02:18 6 1221646

>>1221644
Что пруф? После перемещения в оригинальной переменной остаётся мусор. Перемещая переменную ты буквально говоришь компилятору что она тебе больше не нужна и использовать её ты больше не будешь.

Ответы21649

3 июля, 02:19 7 1221647

>>1221642
std::forward нужен для передачи forwarding reference. А у тебя её нет.

Впрочем, у тебя нет вывода типа, а явная подстановка, так что на неправильный шаблонный параметр пофиг.

Ответы2166721819

3 июля, 02:22 8 1221649

>>1221646
>Что пруф?
Хуйни, которую ты тут несёшь.
>После перемещения в оригинальной переменной остаётся мусор.
Всё зависит от перемещающего конструктора, от того, что он сделает со своим параметром.
Почти все классы в стандартной библиотеке оставляют объект в каком-то валидном (но неспецифицированном) состоянии после мува.
Можешь мувать их сколько хочешь раз.
То же желательно гарантировать для своих типов.
> Перемещая переменную ты буквально говоришь компилятору что она тебе больше не нужна и использовать её ты больше не будешь.
Бред.

Ответы2165021657

3 июля, 02:26 9 1221650

>>1221649
> Всё зависит
Это и есть определение UB, поздравляю.

Ответы21651

3 июля, 02:34 10 1221651

>>1221650
>Это и есть определение UB
Не пизди. Вот определение UB http://eel.is/c++draft/defns.undefined
"behavior for which this document imposes no requirements"

Ответы21652

3 июля, 02:36 11 1221652

>>1221651
Ну да, стандарт не гарантирует, что после перемещения в объекте не останется мусор. Значит повторно использовать его это тоже самое, что повторно использовать указатель после вызова delete. Может там что-то добрый рантайм и сохранит, но UB остаётся UB.

Ответы21655

3 июля, 02:43 12 1221654

И да, вот что говорит стандарт: http://eel.is/c++draft/lib.types.movedfrom
> moved-from objects shall be placed in a valid but unspecified state.
Да, конечно, это тебе не use-after-free, но мусор остаётся мусором. Единтсвенное что можно делать с такой переменной не опасаясь багов: это её заново инициализировать (при этом надо убедится что тип переменной действительно инициализирует её с нуля, а не сохраняет что-нибудь из существующих данных), и ничего больше.

Ответы2165621657

3 июля, 02:43 13 1221655

>>1221652
>Ну да, стандарт не гарантирует, что после перемещения в объекте не останется мусор.
Зато гарантирует, что если ты там не "наделаешь мусора", то его там и не будет.

> Значит повторно использовать его это тоже самое, что повторно использовать указатель после вызова delete.
Этот бред ниоткуда не следует.

> Может там что-то добрый рантайм и сохранит, но UB остаётся UB.
Покажи мне конкретно, с чего и где, кроме твоей тупой башки, образуется "мусор"?

3 июля, 02:47 14 1221656

>>1221654
> и ничего больше.
Ну ещё вызвать деструктор, да.

3 июля, 02:49 15 1221657

>>1221654
>И да, вот что говорит стандарт: http://eel.is/c++draft/lib.types.movedfrom
>> moved-from objects shall be placed in a valid but unspecified state.
Я это и написал
>>1221649
>Почти все классы в стандартной библиотеке оставляют объект в каком-то валидном (но неспецифицированном) состоянии
Вместо "почти все" стоило написать "если не указано иное", но это в принципе заменяемые понятия: обычно явно указывают иное и редких исключений.

> мусор остаётся мусором
Определи, что такое "мусор".

> Единтсвенное что можно делать с такой переменной не опасаясь багов: это её заново инициализировать (при этом надо убедится что тип переменной действительно инициализирует её с нуля, а не сохраняет что-нибудь из существующих данных), и ничего больше.

Ты понимаешь, что значит "остаётся в валидном состоянии"? То, что объект, который был перемещаемым, остаётся таки же. Это один из его инвариантов, из которых складывается его "валидное состояние".

Ответы21658

3 июля, 02:57 16 1221658

>>1221657
> остаётся таки же
Давай проверим: https://ideone.com/Nm9TDF

Ой, рантайм еггог.

Ну да ладно, это у нас вектор такой, скотина, нерабочий инвариант оставил. Возьмём что-нибудь попроще: https://ideone.com/0B1LJQ

Ой, разыменовывание nullptr. Ну это всё исключения, доказывающие правило. Чем больше исключений, тем правило сильнее.

Ответы21659

3 июля, 02:59 17 1221659

>>1221658
>> остаётся таки же
> Давай проверим: https://ideone.com/Nm9TDF
Для тебя русский не родной?

> который был перемещаемым, остаётся таки же
означает
> который был перемещаемым, остаётся перемещаемым

Ответы21660

3 июля, 03:02 18 1221660

>>1221659
Видимо не родной. Таки же в контексте "оставаться таки же" выглядит как еврейская уловка для обмана гойев, либо как опечатка от таким же. Что не отменяет того, что в обеих случаях выше от объекта оставался мусор. Точнее добрый std сбрасывал их в дефолтное состояние.

А что там будут делать не стандартные библиотеки даже страшно предположить. Остаётся только надеяться и верить. Вера это самое важное.

Ответы21661

3 июля, 03:04 19 1221661

>>1221660
По-моему, это очевидно, что там опечатка. Ну а если не очевидно, то, скорее всего, ты не носитель языка.

Ответы21662

3 июля, 03:06 20 1221662

>>1221661
Объект остаётся, содержимое превращается в мусор (или сбрасывается, но превращать в мусор стандарт не запрещает). Да валидный (с точки зрения типа) мусор, но всё таки мусор. Зачем тебе мусор?

Ответы21664

155 Кб, 1366x768
3 июля, 03:07 21 1221663

Cап.
Писал в прошлом, наконец починил вижуал студио (переустановил винду, лол).
И мне снова нужно скомпилировать этот код: https://msdn.microsoft.com/ru-ru/library/system.io.ports.serialport?cs-save-lang=1&cs-lang=cpp#code-snippet-2
Как и где мне прописать параметр /clr, чтоб заработало все? Полчаса в гугле нихуя не дали.

Ответы2166621675

3 июля, 03:08 22 1221664

>>1221662
>Объект остаётся
валидным

> Зачем тебе мусор?
Что такое "мусор"?

Ответы21666

126 Кб, 1047x708
3 июля, 03:16 23 1221666

>>1221664
> Что такое "мусор"?
То, что осталось от объекта. Набор байтов, который не несёт никакой пользы. То, чьё использование может защищать только косноязычный дегенерат, вроде тебя, специально против которых придумали даже проверку в статическом анализаторе, если не дай бог такой заведётся в команде [1].

[1]: https://clang.llvm.org/extra/clang-tidy/checks/bugprone-use-after-move.html

>>1221663
В настройка ставится на первой странице.

Ответы21669

3 июля, 03:16 24 1221667

О боже, господа, вы меня запутали. Не путайте меня. Я и сам путаюсь.

>>1221643
1. Точно, мой косяк, пофиксил: https://ideone.com/77Bn5r
2. Если речь об om, то там же нечего перемещать, она для эксперимента и ничего не содержит. В работе перемещать переменную в moved-from-state конечно не буду.
3. Пощади, это еще что за хрень?! Как может быть константная rvalue ссылка? Я правда не представляю, что это и где может возникнуть.

>>1221647
Я так понял, что для таких функций как у меня там, возвращающих неперемещаемый объект, forward() прям-таки жизненно-необходим и без него ничего не заработает. Вижу правда, что он ломает передачу по неконстантным ссылкам, так что лепить не глядя его тоже выходит не стоит.
А что ты пишешь о forwarding reference, которой у меня нет, не понимаю. Можешь растолковать?

Ответы21668

3 июля, 03:19 25 1221668

>>1221667
> Пощади, это еще что за хрень?!
Это чтобы явно запретить копирование. Ты говоришь компилятору, что будет принимать только rvalue, а копирование данных запрещено.

Ответы21670

3 июля, 03:24 26 1221669

>>1221666
>То, что осталось от объекта. Набор байтов, который не несёт никакой пользы.
Перечитай что сам копипастил:
> moved-from objects shall be placed in a valid but unspecified state.
Остался сам объект, а не "от объекта". "От объекта" остаётся (кусок памяти) после вызова деструктора и до освобождения памяти. А у нас остался объект. Все инварианты, требуемым его типом, выполняются.

> То, чьё использование может защищать только косноязычный дегенерат, вроде тебя, специально против которых придумали даже проверку в статическом анализаторе, если не дай бог такой заведётся в команде

Ты совсем тупой, я смотрю. Я не защищал использование перемещённых объектов, я защищал тред от набега идиотов вроде тебя, которые не знают, что такое UB и когда оно бывает или не бывает.

3 июля, 03:29 27 1221670

>>1221668
Так что ж с ним делать, если оно принимается как rvalue, т. е. читай, безымянная мимолетная штука, при этом еще и копирование запрещено?

Ответы21671

3 июля, 03:31 28 1221671

>>1221670
Оно не отличается от T&&. const T&& просто гарантирует, что не будет выполняться копирование при передаче аргумента. Делать можешь всё тоже самое, что и с T&&.

Ответы2167321819

3 июля, 03:38 29 1221673

>>1221671
> всё тоже самое
Хотя, конечно, не всё. Переопределить переменную const T&& ты не сможешь.

3 июля, 04:38 30 1221675

150 Кб, 1366x768218 Кб, 1366x768186 Кб, 1366x768

>>1221663
Как прописать параметр разобрался.
Дальше -- это. Не может найти MSCOREE.lib
Нашел советы прописать путь до этой либы в Microsoft SDKs\Windows\vxxx\Lib, но у меня даже нет папки Windows внутри, поиском MSCOREE.lib тоже не нашел.
Установил еще несколько пакетов SDK из установщика -- ничего не изменилось.
Есть идеи?

Ответы21677

3 июля, 04:40 31 1221677

>>1221675
Установи C# и .net framework.

Ответы21679

120 Кб, 1366x768
3 июля, 04:52 32 1221679

>>1221677
Спасибо большое. Получилось все. Ура.

3 июля, 10:05 33 1221709

Подскажите ресурс, который помог бы изучить объектную модель C++.
Т. е. хотелось бы узнать, существует ли ресурс, на котором предоставлено множество задачек по ООП в C++, с разными foo и bar, на тему конструкторов, наследования, виртуальных функций и т. п., с задачками, решая которые можно проверить уровень своих знаний и подтянуть их.

Ответы2178721791

3 июля, 11:49 34 1221766

>>1220893
А в чем проблема считать данные в массив чаров, привести его к массиву rgbtriple/rgbquad, реверснуть его, засенить одну половину изображения другой, снова реверснуть и записать в файл?

3 июля, 12:10 35 1221781

Привет Антон. Короче играясь в связке Qt/C++ с моделями и проксимоделями отстрелили се пол туловища, проект просто стоит на месте уже 5 день. Решил нанять специалиста разгрести говно, предварительно сообщив о проблеме дрэку и сказав что бро те надо будет ещё деньжат подкинуть этому чувачку. Нужен адекватный анализ правильности решения. Или просто дальше плакать?

Ответы25271

3 июля, 12:19 36 1221787

>>1221709
Стивен Прата, вот тебе хороший ресурс.

Ответы21794

3 июля, 12:24 37 1221791

>>1221709
Если ты имеешь в виду интерактивную платформу с автопроверкой задач, то на stepic есть курс от CSC, называется Введение в C++, там этих задач нормально так.

Ответы21794

3 июля, 12:31 38 1221794

>>1221787
Посмотрю, спасибо.
>>1221791
>Если ты имеешь в виду интерактивную платформу с автопроверкой задач
Да, что-то в этом роде имел в виду. Хотя просто задачи в текстовом виде с ответами на них в тоже подошли бы.
Спасибо.

Ответы21802

3 июля, 12:46 39 1221802

>>1221794
Там тебе даже сертификат выдадут, если всё пройдешь. Мне уже выдали, сижу радуюсь.
А вообще, как для проверки своих знаний очень даже ничего. Умный указатель с подсчетом написать сможешь? — а там есть такая задача, например.

Если кто посоветует альтернатив, буду рад. Тамошние все запилил, а других бесплатных платформ с задачами не встречал.

Ответы21803

3 июля, 12:51 40 1221803

>>1221802
Эти задачи с привязкой по времени?

Ответы21816

3 июля, 13:07 41 1221816

>>1221803
Если ты имеешь в виду, на время ли, то нет. Требования только чтобы ресурсы не утекали и не было прочих ошибок в граничных случаях.

3 июля, 13:18 42 1221819

>>1221647
>>1221671
Смотри, что не так? Страуструп дает такое определение:

template <class T>
struct identity
{
typedef T type;
};

template <class T>
T&& forward(typename identity<T>::type&& a)
{
return a;
}

Я перепечатываю его — и компилятор сразу же посылает меня с формулировкой „Нельзя привязать левостороннее значение к ссылке на правостороннее значение“.
Меняю forward на std::forward — всё работает.
Что это за мистика? Или Страуструп обманывает?

Ответы2183921898

3 июля, 13:57 43 1221839

>>1221819
>Меняю forward на std::forward — всё работает.
>Что это за мистика? Или Страуструп обманывает?
лолват. Он там наверняка где то в начала книги написал что везде по умолчанию using namespace std;

Ответы21852

3 июля, 14:11 44 1221852

>>1221839
Ну вот же ссылка: https://www.artima.com/cppsource/rvalue.html
Самый конец повествования, когда уже Deus Ex Machine спустился и спас отчаявшегося героя, но в эпилоге зрителю объясняют, как рояль оказался в кустах. статьи, где англиццким по белому написано The definition of forward looks like this:

И этот дефинишн работает у меня как-то неадекватно, вот. Там чего-то недостает в его определении?

Ответы21895

3 июля, 14:31 45 1221866

Есть одна программа. Если она запускается юзером, то всё ок, она считает своей локальной папкой - папку в которой находится .exe файл
Если она запускается при старте пк, через реестр, то она начинает считать своей локальной папкой windows\system32
Как это починить?

Ответы21883

3 июля, 15:06 46 1221883

>>1221866
Телепаты в отпуске, так что:
QDir::setCurrent(QCoreApplication::applicationDirPath());

Ответы21896

3 июля, 15:23 47 1221895

>>1221852
На cppreference есть интерфейсы как с rvalue-ссылкой, так и с lvalue.
В обычном случае аргумент std::forward - lvalue ссылка, которую нужно привести обратно к тому типу, который передавался в wrapper-функцию. У тебя же реализация принимает на вход строго rvalue ссылку.

3 июля, 15:25 48 1221896

>>1221883
Подробнее распишу, уже сам немного разобрался.
Если юзер запускает .exe то GetCurrentDirectory(sizeof(buffer), buffer); возвращает
"CURRENT DIRECTORY "C:\\Progfolder\\App""
а GetModuleFileName(NULL, bufferFILE, sizeof(bufferFILE)); возвращает
"CURRENT FILENAME "C:\\Progfolder\\App\\AppName.exe""
Если же идёт автозагрузка из реестра, то получаются соответственно следующие результаты
"CURRENT DIRECTORY "C:\\Windows\\SysWOW64""
"CURRENT FILENAME "C:\\Progfolder\\App\\AppName.exe""

Значит решением будет являться проверка при запуске соответствия результатов GetCurrentDirectory и GetModuleFileName(с отрезанной exe-частью), и, при несовпадении, вызов SetCurrentDirectory с папкой из GetModuleFileName.
Верно?

Ответы2193121942

3 июля, 15:25 49 1221898

>>1221819
// для передачи lvalue ссылок и rvalue
template <class T>
T&& forward(typename identity<T>::type& a)
{ return static_cast<T&&>(a); }

// для передачи rvalue
template <class T>
T&& forward(typename identity<T>::type&& a)
{ return static_cast<T&&>(a); }

Неужели сложно посмотреть как реализован forward в std?

Ответы21934

3 июля, 16:07 50 1221931

>>1221896
Не помогло

3 июля, 16:18 51 1221934

>>1221898
Я туплю, да.
Выходит, писать явное приведение к && в утверждении возврата обязательно. Значит, та статья всё же немного дезинформирует (не считая того, что там только && перегрузка, а нужна еще и &). Короче, разобрался, пока не пойму, так хоть запомню. Спасибо.

3 июля, 16:26 52 1221942

Дошёл до
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/ba590643-528b-44a5-b379-8a1e3e4250d0/windows-launches-my-app-in-system32-on-windows-startup?forum=csharpgeneral
Схожая проблема и схожее решение для C#
Почему тогда не работает >>1221896 ?
В логах всё получается нормально
1. "CURRENT DIRECTORY "C:\\Windows\\SysWOW64""
2. "CURRENT FILENAME "C:\\Progfolder\\App\\AppName.exe""
3. "CURRENT CUTTED "C:\\Progfolder\\App""
И после вызова SetCurrentDirectory
4. "CURRENT DIRECTORY "C:\\Progfolder\\App""

Тем не менее, локальные файлы из C:\\Progfolder\\App не подцепляются

Ответы21946

3 июля, 16:31 53 1221946

>>1221942
Ан нет, соврамши. SetCurrentDirectory не поменял CURRENT DIRECTORY. Продолжу разбираться, буду держать всех в курсе.

1,9 Мб, webm,
768x576, 0:07
3 июля, 17:09 54 1221966

>Я когда заебался от С++

Ответы21967

3 июля, 17:09 55 1221967

>>1221966
Лох

3 июля, 17:47 56 1221991

Поясните тупому пожалуйста. Стоит ли вкатываться в кресты с целью освоения программиррования как такового и нахождения работы рб после универа? Отпинал 4 года на специальности инженер-программист. Т.е. на старте имею минимальные понимания спецальности и некое очарование перед с++ нравится, что с помощью него можно создать полезное в быту и его мощь.

Ответы21993220002647032816

3 июля, 17:57 57 1221993

>>1221991
Нет.
Большая часть рынка-веб-дрочево, соответственно, учи JS\HTML\CSS и как вариант для бэка C#\Java(если вдруг потом захочешь чем-то, кроме веба, заниматься).
мимо_из_бульбостана_вкатываюсь_на_шарпе

Ответы21999

3 июля, 18:07 58 1221999

>>1221993
Ну с# из всего этого только прельстил. Вот и не знаю толи его бороть, толи с++.
Не хочется этим веб дрочевом заниматься хочу чего-то более практичного чтоль, но и с голоду помереть тоже не вариант.

Ответы22213

3 июля, 18:08 59 1222000

>>1221991
Абсолютно все программисты на рынке востребованы, даже знакомый хаскелист работу нашел. Делай то, что тебе нравится.

Ответы2200122036

3 июля, 18:09 60 1222001

>>1222000
Пишет-то на нормальном языке, небось.

Ответы22009

3 июля, 18:33 61 1222009

>>1222001
нет, на хаскеле. Но да, удаленно.

3 июля, 19:16 62 1222036

>>1222000
Двачую. Трипл хуйни не скажет :)

3 июля, 21:30 63 1222112

23 Кб, 320x24029 Кб, 320x24029 Кб, 320x240

>>1221762
Звучит это конечно все очень здорово, но я без понятия как это сделать
for (int i = 0; i < bih.biWidth / 2; i++)
{
fread(&rgb, sizeof(rgb), 1, in);
fwrite(&rgb, sizeof(rgb), 1, out);

}
long pos = ftell(in);
for (int i = 0; i < bih.biWidth / 2; i++)
{
fseek(in, pos - i - 1, SEEK_SET);
fread(&rgb, sizeof(rgb), 1, in);
fwrite(&rgb, sizeof(rgb), 1, out);
}
Пока изъебывыаюсь вот так, но картинку просто размазывает

Ответы22115221282217222207

3 июля, 21:36 64 1222115

>>1222112
Даже по твоей размазанной картинке видно, что то что ты делаешь неправильно и графон хранится в другом формате.

Ответы22119

3 июля, 21:39 65 1222119

>>1222115
Расскажи тогда что, я вот не понимаю, а двач не поддерживает bmp

3 июля, 21:53 66 1222128

>>1222112
Страйд не тот, походу

Ответы22165

3 июля, 23:12 67 1222165

>>1222128
Да. https://docs.microsoft.com/en-us/windows/desktop/api/wingdi/ns-wingdi-tagbitmapinfoheader

219 Кб, 1200x600
3 июля, 23:27 68 1222172

>>1222112
Я на скорую руку написал быдлокод и УМВР. Правда поддерживаются только несжатые файлы с 24-битами. https://pastebin.com/y11wCE2M

Ответы22178

28 Кб, 320x240
3 июля, 23:33 69 1222178

>>1222172
Это конечно все здорово и приятно, но я не понимаю что ты написал
А у меня уже тигра не так пидорасит и что то похожее на зеркальность есть
Осталось понять из за чего у меня линии сторон файла чередуются и пофиксить

Ответы22181

3 июля, 23:35 70 1222181

>>1222178
> Это конечно все здорово и приятно, но я не понимаю что ты написал
Тогда зачем ты занимаешься программированием? У меня там элементарнейший C++ без какой-либо магии. И для написания этой программы мне хватило информации из википедии о формате BMP: https://ru.wikipedia.org/wiki/BMP

Ответы22183

3 июля, 23:39 71 1222183

>>1222181
>Тогда зачем ты занимаешься программированием?
Потому что могу
Попытаюсь конечно разобраться
Я плюсы еще только трогаю немного, до этого писал только на С

Ответы22184

3 июля, 23:40 72 1222184

>>1222183
> Потому что могу
А я вижу что не можешь. Хоть бы язык изучил. Или тебя пугает, что я там unique_ptr впердолил? Это тупо чтобы delete не писать.

Ответы2218722216

3 июля, 23:45 73 1222187

>>1222184
Вот, тащемта, весь мой алгоритм:
inf.read(in_line.get(), width∗3); // считываем строку из файла
memcpy(out_line.get(), in_line.get(), width∗3); // копируем её в буфер, который будет записан в файл, это будет оригинальное, неотзеркаленное изображение
char∗ in = in_line.get(); // указатель на строку оригинального изображения
char∗ out = out_line.get() + width∗3; // вычисляем указатель куда будет помещать отзеркаленные данные. это будет начало строки + ширина файла умноженная на количество байтов
for(auto i = 0; i < width; ++i) {
out[i∗3] = in[(width - i)∗3 - 3]; // записываем в цикле три цветовых байта в обратном порядке
out[i∗3 + 1] = in[(width - i)∗3 - 2];
out[i∗3 + 2] = in[(width - i)∗3 - 1];
}
outf.write(out_line.get(), width∗2∗3);

Ответы22206

4 июля, 00:56 74 1222206

>>1222187
Спасибо за помощь, все заработало
подарил бы тебе пиво, если бы мог

4 июля, 01:07 75 1222207

>>1222112
Я недавно просто колупался с этим.
Делаешь массив чаров длиной ширина на высоту на размер структуры пикселя - вот тебе все данные по пикче, считываешь через istream::read.
Потом делаешь std::reverse с ним(например, инициализируешь вектор пикселей этим массивом чаров) - вот у тебя есть данные в адекватном порядке. Преобразуешь их как надо, разворачиваешь обратно вектор, vector::data пишешь через ostream::write в изображение - только не забудь считать хэдэры файла и пикчи и записать их перед этим, чтобы не проебаться.
У меня таким образом считается и пишется .bmp 8000x4000 меньше, чем за секунду - против полутора минут попиксельного считывания.

4 июля, 02:03 76 1222213

>>1221999
В вэбе дохуя вакансий в сравнении с остальными вариантами.
Поэтому не хочешь сдохнуть и хочешь быстрее вкатиться-иди туда.
А потом перекатиться будет все одно проще с опытом реальной разработки, чем просто с нуля.

Ответы2221832816

4 июля, 02:29 77 1222216

>>1222184
>чтобы delete не писать
new тоже писать не надо. правильно так:
auto in_line = std::make_unique<char[]>(width * 3);

Ответы22220

4 июля, 02:40 78 1222218

>>1222213
Меня время не сильно поджимает, да и веб кажется излишне засранным. Боюсь обмажусь не тем и время упущу. А тут вроде больше алгоритмов.

4 июля, 03:03 79 1222220

>>1222216
но лучше таки std::vector

Ответы22239

4 июля, 05:47 80 1222239

>>1222220
Негоже там vector'у быть, сколь и телу цикла, цвета копирующего, кое в долгое ожидание ввергает, да о формате тексела не ведает. Коли делать добротно, то надо бы загодя размер данных вычислить, тексель описывающих, да сим размером через memcpy копировать.

Ответы22240

4 июля, 06:18 81 1222240

>>1222239
Вроде у вектор для POD типов есть оптимизация. Да и ничто не мешает использовать его как тупой буффер и делать memcpy самому

Ответы22276

4 июля, 10:13 82 1222276

>>1222240
Базаришь. А ещё лучше испоьлзовать std::copy, который имеет информацию о типе, а значит чуточку быстрее в отличии от memcpy.

Ответы22323

4 июля, 12:18 83 1222323

>>1222276
А вот тут ты не прав, брат.
https://ideone.com/M8sIIk

Ответы22327

4 июля, 12:26 84 1222327

>>1222323
А, не. Это я мудак, время неправильно измерил.

4 июля, 14:48 85 1222405

382 Кб, 421x607330 Кб, 453x64919 Кб, 419x604

Гайз, год учебники играет существенную роль для плюсов? Сильно ли он изменился? в названиях пик годы учебников

Ответы2241822449

4 июля, 15:05 86 1222418

>>1222405
В 2011 добавили много нового функционала, поэтому лучше читать книжки, выпущенные позже. Ну а в целом то, о чем Шилдт писал в 2005м, актуально и по сей день.

4 июля, 15:28 87 1222428

Я, кажется, что-то делаю не так, но вот что именно?
https://ideone.com/wtJNdd

Первый раз заюзал ::operator new, так что не бейте ногами, а если можете подсказать, подскажите, что мне делать.

Ответы2247122612

4 июля, 16:00 88 1222449

>>1222405
Играет. В С++11 не только кардинально изменился язык - изменились идиомы и практики.

4 Кб, 503x53
4 июля, 16:15 89 1222466

#include <iostream>
#include <cstdlib>

using namespace std;

int main(){
system("chpc 1251>nul");
double n, l, w;
cout << "Числа от 1-";
cin >> n;
cout << "Шаг: ";
cin >> w;

l = 0;
while (l < n);
{
w += 1 + 1;
l++;
}
cout << "Ответ: " << l;
system("pause>nul");
return 0;
}

4 Кб, 503x53
4 июля, 16:15 89 1222466

#include <iostream>
#include <cstdlib>

using namespace std;

int main(){
system("chpc 1251>nul");
double n, l, w;
cout << "Числа от 1-";
cin >> n;
cout << "Шаг: ";
cin >> w;

l = 0;
while (l < n);
{
w += 1 + 1;
l++;
}
cout << "Ответ: " << l;
system("pause>nul");
return 0;
}

Показать весь текст
Ответы22477

4 июля, 16:16 90 1222467

Что в коде не так?

Ответы22484

4 июля, 16:18 91 1222471

>>1222428
error: class ‘Array<T>’ does not have any field named ‘size_’
error: ‘size_’ was not declared in this scope
error: expected ‘)’ before ‘{’ token
Нутыпонил

Ответы22534

4 июля, 16:21 92 1222477

>>1222466
> пик
Надо в настройках проекта менять

Ответы22492

4 июля, 16:26 93 1222484

>>1222467
Самое главное
while (l < n);

Ответы22522

4 июля, 16:30 94 1222492

>>1222477
Можешь заскринить, а но я нуб

Ответы2249722503

4 июля, 16:32 95 1222497

>>1222492
Блять, у тебя же на скрине всё написано.
Щёлкаешь ПКМ по проекту -> свойства проекта или как там и ищешь "Изменить целевую платформу решения"

Ответы22504

4 июля, 16:35 96 1222503

>>1222492
в студии компонент win8 sdk установи, в инсталлере и будет тебе счастье

Ответы22523

4 июля, 16:35 97 1222504

>>1222497
Это не помогает)

4 июля, 16:52 98 1222522

>>1222484
if (l < n); так?

Ответы22525

4 июля, 16:53 99 1222523

>>1222503
Спс

4 июля, 16:53 100 1222525

>>1222522
while (l < n)
Так

Ответы22529

4 июля, 16:55 101 1222529

>>1222525
Ааа точно, сяп

4 июля, 16:58 102 1222534

>>1222471
Я патау-додик и провтыкал круглую скобку.
Спасибо, эту дичь исправил. Но проблема с незнакомым мне placement new не исчезла:
https://ideone.com/1Jppg
Что он хочет? Я написал, как кому-то советовали на стековерфлоу, но тут что-то не работает.

Ответы22610

4 июля, 18:33 103 1222610

>>1222534
>Что он хочет?
Ссылку на ideone нормальную.

Ответы22650

4 июля, 18:33 104 1222612

>>1222428
>Я, кажется, что-то делаю не так, но вот что именно?
elements = new (memory_) T[size_];
std::uninitialized_fill(elements, elements+size_, value);
Вот это.

4 июля, 19:29 105 1222650

>>1222610
Прошу прощения, вот: https://ideone.com/KWcJwT
Поправил скобку, и теперь в этом конструкторе выдает такую претензию: error: invalid conversion from ‘void☆’ to ‘char☆’ [-fpermissive]
explicit Array(size_t size, const T& value = T()): size_(size), memory_(::operator new(size_☆sizeof(T)))

Ответы22652

4 июля, 19:38 106 1222652

>>1222650
У тебя мемори чар звезда, нью возвращает воид звезда, сделай статик каст.
а ещё зачем тебе эксплисит конструктор от двух переменных?

Ответы22702

4 июля, 21:00 107 1222702

>>1222652
Спасибо. Не так всё и трудно, оказывается.
Конструктор получает размер и значение по-умолчанию для типа, у которого нет операции копирования, есть только конструктор копирования.
Кстати, что ты мне посоветуешь сделать с uninitialized_fill, который теперь забраковывают потому, что у типа еще и конструктора по-умолчанию нет? Вообще какой-то каличный тип получается, можно только конструктор копирования у него использовать. И как в таком случае быть с моим первым конструктором? Кажется, uninitialized_fill тут уже не прокатит.

4 июля, 21:23 108 1222721

Ананасы, clang 6 под виндой поддерживает SSE3? Если да, то хули он ругается на _mm_addsub_pd?

Ответы22722

4 июля, 21:24 109 1222722

>>1222721
libastral.so не подвезли, чтопишет хоть?

Ответы22726

4 июля, 21:30 110 1222726

>>1222722
>чтопишет хоть?

error: use of undeclared identifier '_mm_addsub_pd'

Ответы22736

4 июля, 21:45 111 1222736

>>1222726
Заебись, надо -msse3 дописать

5 июля, 16:46 112 1223088

https://habr.com/company/yandex/blog/413719/

5 июля, 17:02 113 1223098

Приветствую, на данный момент прохожу файловую систему.
В книге рассказывается о данной программе ( https://ideone.com/pPUPJt ). Мол она осуществляет запись текста в какой-то введенный файл .
Хотел задать два вопроса.
В чем заключается смысл условия if (! file_out ). В книге говорится, что он проверяет название файла на существование и на то, что не доступен ли он только для чтения или нет.
Можете объяснить почему запись осуществляется именно так (! file_out).
И второй вопрос. Сама программа создает именно новый файл, а не записывает в какой-то, допустим, txt файл введенные строки. Как сделать ввод именно в txt?
Спасибо за ответ!

Ответы231062310823111

5 июля, 17:13 114 1223106

>>1223098
автора,пожалуйста, название книги и страницу.

Ответы23114

5 июля, 17:13 115 1223108

>>1223098
> В чем заключается смысл условия if (! file_out )
Удалось ли открыть файл (почему не удалось открыть, вопрос другой, например уже открыто много файлов и ОС не удалось тебе выделить ещё один, не прав и тд).

> Можете объяснить почему запись осуществляется именно так (! file_out)
Наверняка это реализовано через operator bool()

> Сама программа создает именно новый файл, а не записывает в какой-то, допустим, txt файл введенные строки. Как сделать ввод именно в txt?
Вводи название такое myfile.txt

Ответы231112311623121

5 июля, 17:16 116 1223111

>>1223108
>>1223098
> И второй вопрос. Сама программа создает именно новый файл, а не записывает в какой-то, допустим, txt файл введенные строки. Как сделать ввод именно в txt?
А. Не так понял.

Вместо
> std :: ofstream file_out (filename);
Напиши так
> std :: ofstream file_out (filename, std::ios_base::app );

5 июля, 17:21 117 1223114

>>1223106
"С++ без страха" Брайан Оверленд 206 cтраница, 2005 год.
С обложки на нюфаг треде увидел.

Ответы231172311923311

5 июля, 17:21 118 1223116

>>1223108
>Удалось ли открыть файл (почему не удалось открыть, вопрос другой, например уже открыто много файлов и ОС не удалось тебе выделить ещё один, не прав и тд).
Он,кстати, по другому отрабатывает, чем is_open. Если файл вообще не открывать - is_open вернет 0, а op. bool() вернет 1

5 июля, 17:24 119 1223117

>>1223114
И как, страха нет?

5 июля, 17:26 120 1223119

>>1223114
203*

5 июля, 17:28 121 1223121

>>1223108
>>1223108
Не особо понял про запись "operator bool()".
Там идет именно условие, которое срабатывает при несуществовании файла/другой причины. Но как именно проверяется это условие? С чем оно сравнивается? Типа это альтернатива такой записи:
Если на компьютере нет файла filename, тогда ...

Ответы23126

5 июля, 17:32 122 1223126

>>1223121
> Не особо понял про запись "operator bool()".
Когда будешь читать про перегрузку операторов то будет понятнее.
Грубо говоря можешь считать что "operator bool()" это функция которая возвращает true или false, но писать вызов этой функции через точку тебе не надо. Это будет сделано автоматически.

> Там идет именно условие, которое срабатывает при несуществовании файла/другой причины. Но как именно проверяется это условие? С чем оно сравнивается?
Это уже зависит от ОС.

Ответы23130

5 июля, 17:36 123 1223130

>>1223126
Спасибо за ответы! Плюс-минус разобрался.

5 июля, 19:02 124 1223160

Как через это удалить элемент в векторе?

std::vector<int> v;

for ( const auto & it : v )

v.erase( ??? )

Ответы23162231672316823299

5 июля, 19:11 125 1223162

>>1223160
изи
>v.erase( v.begin() + (&it - v.data()) );

Ответы23167

5 июля, 19:20 126 1223167

>>1223160
Никак, range based for не для этого.

>>1223162
Мне думается, что тут будет не совсем то поведение, на которое ты расчитываешь

Ответы23185

5 июля, 19:23 127 1223168

>>1223160
Никак. Какой элемент тебе надо удалить?

5 июля, 19:23 128 1223169

Ананасы, вопрос такой.
Очень часто избегал тему шаблонов ну кроме примитивного уровня, типа длины Си массива и ещё какой-нибудь мелочи.
Недавно смотрел видео с конференций и охуел какие штуки можно на них проворачивать.
Так вот какие книги стоит читать для изучения этих самых шаблонов?

Ответы23178

5 июля, 19:42 129 1223178

>>1223169
Какие видео смотрел?

Ответы23183

5 июля, 19:52 130 1223183

>>1223178
Конкретные не помню, но вроде все отсюда.
https://www.youtube.com/channel/UCJ9v015sPgEi0jJXe_zanjA/featured?disable_polymer=1

5 июля, 19:57 131 1223185

>>1223167
Да ну?
https://ideone.com/ZUtxYb
впрочем это решение действительно хрупкое, нужно знать что делаешь

Ответы23187

5 июля, 19:59 132 1223187

>>1223185
https://ideone.com/4bDASA
Проблема в том, что ты не знаешь, как работает range-based for, и, судя по всему, не очень понимаешь концепцию валидности итераторов

Ответы23192

5 июля, 20:11 133 1223192

>>1223187
>не очень понимаешь концепцию валидности итераторов
Чего там понимать? ты кстати, break забыл удалить из примера.

Ответы23194

5 июля, 20:13 134 1223194

>>1223192
https://ideone.com/4bDASA

Удалил break. Поведение все еще некорректно.

Ответы23204

5 июля, 20:32 135 1223204

>>1223194
>Удалил break. Поведение все еще некорректно
А с чего ему быть корректным, если после удаления итераторы оказываются невалидными, а range-based for хранит неявно итератор, а? Похоже это ты у нас
>не очень понимаешь концепцию валидности итераторов

Ответы23275

32 Кб, 444x250
хелп 5 июля, 20:38 136 1223209

анон, нужна помощь, помогите понять, как написать код, чтобы был зацикленный текст, типо такого, гифрил

Ответы23213

5 июля, 20:43 137 1223213

>>1223209
В смысле чтобы он в терминале так печатал-стирал? Ну это нужно пердолиться с winapi для консоли. Буферы символов там, вся хуйня...

Ответы23216

5 июля, 20:46 138 1223216

>>1223213
Разве спец-символы, который стирают предыдущий символ и подобные в простом cout не работают? На предыдущую строку тут переходить не надо.

Ответы23219

5 июля, 20:50 139 1223219

>>1223216
ну если не сложно,Есть возможность скинуть целый код?

Ответы23225

5 июля, 21:08 140 1223225

>>1223219
Сложно, делай сам. cout << "\b"; переводит каретку на один символ назад. Чтобы символы стереть надо что-нибудь написать поверх них (например пробел).

5 июля, 22:45 141 1223275

>>1223204
Я тебе в нос тыкаю, что ты хуйню написал, которая не работает. Я прекрасно все знаю, как работает. А щас ты маняврировать начинаешь.

Ответы23299

5 июля, 23:07 142 1223299

>>1223275
И так, изначальный вопрос был:
>Как через это удалить элемент в векторе?
Так вот, код который я привел, именно это и делает. Удаляет ровно один элемент из вектора внутри range-for цикла. Все как >>1223160 просил. Понимаешь? И да, код абсолютно валидный и корректный для этого сценария. И вместо того чтобы других обвинять в "маняврировании" ты бы лучше все-таки внимательно читал что именно требуется.

5 июля, 23:26 143 1223311

>>1223114

> "С++ без траха"

Неверю. Такого не бывает.

5 июля, 23:28 144 1223312

Здравствуйте. Я тут пытаюсь понять концепцию rvalue и ссылок типа &&.
Есть одна заминка. Покажу на крохотном примере:
class X{};
X foo() { return X{}; }
X x = foo();

Вопрос вот в чем: какого типа foo()?
Я читал, что вызов функции, возвращающей lvalue-ссылки — это lvalue. Скажем, будь такая сигнатура:
X& foo() { static X x{}; return x; }
вызов foo() это было бы lvalue.
Вызов функции, возвращающей нессылочный тип перечисляют как rvalue. Пользовательский тип по-значению, это же не ссылочный, правда?

Тем не менее, у меня спокойно прокатывает такое объявление:
X foo() { return X{}; }
X& x = foo();
Судя по всему, тут должна быть ошибка компиляции, но у компилятора никаких претензий нет.
Для сравнения, такой код:
int bar() { return 42; }
int& i = bar();
вызывает ошибку компиляции и не дает присвоить bar() неконстантной ссылке на int.

У пользовательских типов отдельные условия какие-то или почему вызов foo() для инициализации ведет себя не так, как вызов bar()?

Ответы233262332723332

5 июля, 23:29 145 1223317

qtwebengine по дефолту поддерживает h264?

5 июля, 23:53 146 1223326

>>1223312
Компилятор msvs умеет так делать в обход стандарта (T& = rvalue(T)).

Ответы2333023331

5 июля, 23:57 147 1223327

>>1223312
>Вопрос вот в чем: какого типа foo()?
X

Ответы23330

6 июля, 00:04 148 1223330

>>1223326
Я так и подозревал, что это всё происки сионистов MVS. А чем чреваты эти обходы? Если моя программа на них полагается, то ее нельзя будет доделывать людям с юниксами?

>>1223327
То есть, lvalue, неконстантное обычное левостороннее значение, да?

Ответы233332333723341

79 Кб, 1969x974
6 июля, 00:04 149 1223331

>>1223326
Двачну этого. Если уж изучаешь C++ с MSVC, поставь флаг /permissive- в конпеляторе, чтоб он полностью соответствовал стандарту.

Ответы2333423336

6 июля, 00:05 150 1223332

>>1223312

Забей. Видно, что у тебя ещё мало знаний. Возвращай всё по значению, принимай по значению, а в функции передавай по константной ссылке. И будет тебе счастье.

Ответы23350

6 июля, 00:06 151 1223333

>>1223330
Тебе тип надо или value category?
Тип: X. value category: prvalue.

Ответы23350

6 июля, 00:08 152 1223334

>>1223331
>флаг /permissive- в конпеляторе, чтоб он полностью соответствовал стандарту.
Этот флаг не про полное соответствие стандарту.
Two-phase name lookup как не было, так и не будет.

Ответы23336

6 июля, 00:10 153 1223336

>>1223331
> он полностью соответствовал стандарту.
Ну, за исключением макросов. Соответствующие стандарту макросы пока доступны только в бета-версии MSVC.
>>1223334
Начиная с 15.7 он тоже есть и тоже включается этим флагом. Как я сказал только макросы остаются со своими проблемами и для соответствия их стандарту нужно использовать другой параметр командной строки и пока только в бета-версии.

6 июля, 00:11 154 1223337

>>1223330
>То есть, lvalue, неконстантное обычное левостороннее значение, да?
Вот хорошая памятка о категориях.
https://en.cppreference.com/w/cpp/language/value_category

6 июля, 00:24 155 1223341

>>1223330
>А чем чреваты эти обходы?
Сами обходы обычно вынужденная мера и ноги у них часто растут из шаблонов. Например раньше не было правила сжатия ссылок и когда при шаблонной подстановке получалось T& &, то компилятор на своё усмотрение схлопывал до T&.
Есл исходить из таких примеров, то либо другой компилятор не сможет скомпилировать (что более вероятно) либо реализует другое поведение (хотя я хз).

Ответы23350

6 июля, 01:09 156 1223350

>>1223333
Я еще путаюсь с понятиями. Получается, тип может быть трех видов: бессылочный, ссылка с одним анперсандом и с двумя.
А value category бывает glvalue, lvalue, pvalue и prvalue, причем два средних принадлежат крайним и, пересекаясь между собой, образуют еще и xvalue.
Я правильно понял? Поправь, если не так.
И, выходит, что функция, возвращаяющая по значению, возвращает бессылочный тип, в то же время он является prvalue, то есть pvalue (адрес взять нельзя, логично). И следовательно, без ловкости рук VS такие фокусы как X& = foo(); работать не должны.

>>1223332
Если постоянно забивать, то так и останется мало знаний. Я же вникнуть хочу и разобраться.

>>1223341
То есть это в любом случае UB и следовательно нужно такого избегать и не вестись на послабления от MVS.

Ответы2335123358

6 июля, 01:13 157 1223351

>>1223350
>Я еще путаюсь с понятиями. Получается, тип может быть трех видов: бессылочный, ссылка с одним анперсандом и с двумя.
Слишком грубая классификация. Посмотри тут http://eel.is/c++draft/basic.types
Если тебя интересует тип выражения, то он бывает только бессылочный.

> А value category бывает glvalue, lvalue, pvalue и prvalue, причем два средних принадлежат крайним и, пересекаясь между собой, образуют еще и xvalue.
> Я правильно понял?

pvalue не существует. См. тут таксономию http://eel.is/c++draft/basic.lval

> И, выходит, что функция, возвращаяющая по значению, возвращает бессылочный тип, в то же время он является prvalue, то есть pvalue (адрес взять нельзя, логично). И следовательно, без ловкости рук VS такие фокусы как X& = foo(); работать не должны.

Возможность взятия адреса тут не при чём. const X& как-то инициализируется без возможности взять адрес.

Ответы23357

6 июля, 02:08 158 1223357

>>1223351
Спасибо за ссылки, на свежую голову ознакомлюсь.
pvalue это моя опечатка, подразумевалось rvalue и prvalue. rvalue может быть glvalue, тогда это xvalue, а остальные rvalue это prvalue. Да?
Что-то такое было еще в TCPL.

То, что константную ссылку можно инициализировать литералом или вызовом функции — знаю (сегодня прочел). А про взятие адресса это от Майерса мнемоническое правило. Выходит, неточное?

Глянь пожалуйста: https://ideone.com/PL0ukW
Это лыжи не едут...?
По статье проверяю, выходит не совсем то, что он предсказывает.

Ответы23359

33 Кб, 505x433
6 июля, 02:16 159 1223358

>>1223350
В целом всё верно, просто тебе нужно навести некоторый порядок с терминологией.

>что функция, возвращаяющая по значению ... возвращает бессылочный тип
Функция ничего не возвращает (void), возвращает объект (T) или ссылку на объект (T& / T&&), но не "возвращает по ссылке" и не "возвращает тип".
>адрес взять нельзя, логично
Все объекты хранятся в памяти и поэтому у них есть адрес, который всегда можно взять (и записать в переменную указатель). Ссылка же к адресу отношения не имеет, а лишь позволяет дать объекту новое имя и определить способ работы с ним через это имя (const/volatile + &/&&). На объявление ссылок (получение доступа к объектам с помощью ссылок) наложен ряд ограничений. Одно из которых говорит, что нельзя объявить неконстантную ссылку на rvalue. Можно объявить константную const T& ref = x; или универсальную T&& ref = x;.

В твоём примере функция возвращает безымянный объект, который допускает перемещение (конструктор копирования сдвигом создаётся по умолчанию), поэтому это prvalue (см картинку). И, как ты написал, без ловкости рук vs объявление ссылки (или присваивание, т.к. это должно происходить одновременно) компилироваться не должно.

Ответы2335923626

6 июля, 02:22 160 1223359

>>1223357
>pvalue это моя опечатка, подразумевалось rvalue и prvalue. rvalue может быть glvalue, тогда это xvalue, а остальные rvalue это prvalue. Да?
Да. Я скинул выше схему.

> А про взятие адресса это от Майерса мнемоническое правило. Выходит, неточное?

У Мейерса все мнемонические правила неточные. Он не отличает prvalue от xvalue, при объяснении template argument deduction при вызове функций оперирует ссылочным типом аргумента функции, хотя единственное место, где используется ссылочный тип аргумента это вывод типа для forwarding reference (http://eel.is/c++draft/temp.deduct.call#3.sentence-4: If P is a forwarding reference and the argument is an lvalue, the type “lvalue reference to A” is used in place of A for type deduction.), в остальных случаях по правилу "If an expression initially has the type “reference to T” ([dcl.ref], [dcl.init.ref]), the type is adjusted to T prior to any further analysis." (http://eel.is/c++draft/expr.prop#expr.type-1.sentence-1) ото всех выражений отрезается ссылочность "сразу".

>>1223358
>универсальную T&& ref = x;.
facepalm.cpp

> values.png
Пик устарел, для C++17 не подходит. Предупреждай об этом.

Ответы233612337223624

6 июля, 02:42 161 1223361

>>1223359
>>универсальную T&& ref = x;.
>facepalm.cpp
>
Что не так? Для его примера X&& x = foo(); не сработает? Ты хочешь std::move(x)?

>> values.png
>Пик устарел.
И что, вот так вот давно релиз c++17 был и всеми компиляторами полностью поддерживается?

Ответы23626

6 июля, 04:55 162 1223372

>>1223359
>prvalue от xvalue
Сука блядь до чего довел С++ этот фигляр Страуструп

6 июля, 06:37 163 1223378

Прочитал ООП в С++ от Лафоре, но, я так понимаю, там не освещены многие вещи из новых стандартов. Посоветуйте пожалуйста, где про них лучше читать, чтобы было плавное и доступное объяснение. Посмотрел стандарт в вики из шапки - там очень неприятная структура и читать из-за этого неудобно. Также что лучше почитать про многопоточность и STL?

Ответы23600

10 Кб, 354x277
6 июля, 11:42 164 1223494

>>1221619 (OP)
Есть вопросы по поводу Qt

1) Почему в отладчике значение переменных пикрил заезжают друг на друга? и как это пофиксить для нормального вида?
2) Можно ли значения этих переменных, например QString вывести в виде hex?
3) У меня переменная sAllObj
>QString sAllObj = "весь объект\n";
Выглядит нечитаемой в отладчике
и не работает сравнение вида
>if (sTemp != sAllObj)
где sTemp:
>if(fileXML.open(QIODevice::ReadOnly >|QIODevice::Text))
>QString sXML;
>QString sTemp;

> while(!fileXML.atEnd())
> {
> sXML = fileXML.readLine();
> sTemp = GetName(&sXML);

Как их корректно сравнить? При этом sTemp нормально выглядит в отладчике!

Ответы23608

6 июля, 13:35 165 1223548

Есть ли какие способы упрощать логические конструкции и ветвления?

У меня куча булевых условий, переходов и ветвлений, все это выглядит довольно запутанно и непонятно. Как бы это изобразить более грамотно?

Ответы2355223554235732362724288

6 июля, 13:37 166 1223552

>>1223548
Компилятор сам изобразит.

6 июля, 13:39 167 1223554

>>1223548
Зависит от кода, но вообще если хочется читабельности, то разбивай на функции с понятными названиями и используй их.

Ответы23557

6 июля, 13:45 168 1223557

>>1223554
На функции я бы и сам додумался, но там все завязано друг на друге, куча ифоф, свитчи и циклы.
Я уже немного упростил это говно добавив состояния, но все равно. Думал может граф юзать, но это мне кажется как из пушки по воробьям.

6 июля, 14:05 169 1223568

74 Кб, 657x47622 Кб, 978x511

Реквестирую хелпу. Почему system("pause") и return 0 вызываются до второго цикла ввода слов (20-21 строка)?
Почему аналогично всё работает в 13-14 строках?

Ответы2357523576

6 июля, 14:18 170 1223573

>>1223548
Поздравляю, видимо ты дошел до стадии когда можно читать паттерны, рефакторинг, чистый код и подобные книги и не считать это ненужной хуйней.

Ответы23582

6 июля, 14:19 171 1223575

>>1223568
Потому что после первого EOF поток считает, что файл закончился.

Ответы23577

6 июля, 14:19 172 1223576

>>1223568
Прекращать цикл ctrl+z - не очень легитимно.

Ответы23577

6 июля, 14:23 173 1223577

>>1223575
>>1223576
то есть ctrl+z посылает всю программу по пизде? почему тогда 18 и 22 строчка выполнились?

Ответы23581

6 июля, 14:29 174 1223581

>>1223577
ctrl-z посылает EOF в stdin, после чего из него уже нельзя ничего прочитать. Хотя его можно ресетнуть через clear()

871 Кб, 245x230
6 июля, 14:30 175 1223582

>>1223573
>паттерны
>не считать это ненужной хуйней

Ответы23611

6 июля, 15:11 176 1223600

>>1223378
Хелп

Ответы23631

6 июля, 15:35 177 1223608

>>1223494
Ты на киберфоруме тему не в том разделе создал))0
Там для qt своя ветка

6 июля, 15:43 178 1223611

>>1223582
Ну а ты еще не дошел=)

6 июля, 16:00 179 1223624

>>1223359
Ты скинул выше схему, но
> values.png — Пик устарел
Тогда о какой схеме речь? Если в статье на хабре, так эту знаю.

Как тогда быть с Майерсом, не читать? Я только во собирался за него засесть, так понял, что он типа must know для програмеров на C++.

6 июля, 16:04 180 1223626

>>1223358
>>1223361
Вопросов два. Ссылку типа && принято называть универсальной?
Как быть с устареванием, не углубляться в ту инфу что сейчас есть?
Где бывают человеческие объяснения новой-актуальной C++17 концепции?

Ответы2366723669

6 июля, 16:06 181 1223627

>>1223548
Давай может схему в pastebin, что у тебя там?

6 июля, 16:14 182 1223631

>>1223600
Про параллелизм Уильямс доступно пишет.
https://www.ozon.ru/context/detail/id/17636939/
А по стандартам, как по мне, полный бардак и читать либо сам стандарт либо собирать по частям из разных источников.

Ответы23646

6 июля, 16:31 183 1223646

>>1223631
Спасибо

6 июля, 17:08 184 1223667

>>1223626
>Вопросов два. Ссылку типа && принято называть универсальной?
А я сам не знаю как её называть. Универсальной её называют, потому что есть правило по которому аргумент шаблона T&& для lvalue превращается в T&, а для rvalue в T. Иногда говорят, что это ссылка на rvalue, коей она собственно и является.

>Как быть с устареванием, не углубляться в ту инфу что сейчас есть?
Видишь код в новом стиле и он тебе нравится - копаешь стандарт и запоминаешь. Нет смысла держать в голове всю ебанину размером больше романа "война и мир" и постоянно отслеживать авторские правки. Новый стандарт подразумевает обратную совместимость, поэтому переделывается совсем немного (auto, enum) и совсем чуть-чуть убирается (auto_ptr, register). C++ это не opengl/directx, где за 5 лет в deprecated улетает до 50% спецификации.

>Где бывают человеческие объяснения новой-актуальной C++17 концепции?
Выпуск финальной версии был в начале года. Для книжек ещё совсем рано, так что либо спецификация либо комментарии тех, кто её выработал.

Ответы23705

6 июля, 17:11 185 1223669

>>1223626
>Где бывают человеческие объяснения новой-актуальной C++17 концепции?
https://medium.com/@barryrevzin/value-categories-in-c-17-f56ae54bccbe
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0135r0.html

Ответы23982

6 июля, 17:54 186 1223705

>>1223667
Я так понял, что универсальная ссылка это const T&, потому что к такому аргументу разрешается любой вызов, если нет ничего более подходящего для, скажем, аргумента типа T&& или еще какого-то.

Но вот чего не догоняю, это как работают эти ваши std::is_lvalue_reference и std::is_rvalue_reference — проверяю ими тип, полученный по ссылке в шаблонную функцию — и они на все вопросы отвечают false. Как может такая дичь происходить, если передают int, int&, int&& — и на всё один ответ. У меня неправильная идея их работы или тут дело нечисто?
https://ideone.com/yozgCe

Ответы2372423920

6 июля, 18:28 187 1223724

>>1223705
Попробуй удалить первый tester и оставить только от универсальной ссылки T&&.

Потому что сейчас происходит так
1) При вызове tester(int&) выбирается перегрузка tester(T&) где T=int
2) При вызове tester(int&&) выбирается tester(T&&) где опять T=int

А int это не ссылка.

Если убрать первую перегрузку, то при tester(int&) вызовется tester(T&&) где T=int&

Ответы23736

6 июля, 19:00 188 1223736

>>1223724
Попробовал. Теперь int, int& и int&& он величает lvalue_reference, а move() от тех же типов встречает прежним возгласом false: https://ideone.com/iTkkjK

Ответы2374423754

6 июля, 19:12 189 1223744

>>1223736
В универсальных ссылках нужно использовать форвард же.

6 июля, 19:25 190 1223754

>>1223736
Еще раз. Чему будет равен Т, если вызвать тестер с аргументом move(intval) и является ли этот тип ссылкой?

tester<T>(T&&)
Аргумент типа int&&
Инстанциируется tester<int>(int&&) {
...
std::is_rvalue_reference<int>::value <- попробуй, блять, предвидеть примерный результат этого выражения
...
}

Т=int НЕ ССЫЛКА

Ответы23825

6 июля, 21:46 191 1223825

>>1223754
Всё-всё, понял. Я чего-то тупил и не связывал в голове две кракозябры в круглых скобочках (&&) с типом Т, которым параметризуются штуковины (они же трейтами называются или как?) в фигурных скобочках функции.

Осталось понять, что автор статьи на хабре подразумевал описанием двух таких функций для & и && и рассказом, что какие-то вызовы ведут себя идентично с какими-то еще. У меня они все отрабатывали одинаково по сценарию false-false, а он расписал это на три разных варианта. Тут моей интуиции уже никак не хватит.

7 июля, 00:26 192 1223920

>>1223705
>Я так понял, что универсальная ссылка это const T&
К volatile не байндится.

Ответы24007

7 июля, 11:05 193 1223982

>>1223669
>>Где бывают человеческие объяснения новой-актуальной C++17 концепции?

>http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0135r0.html

Очень смешно

Ответы24904

7 июля, 12:18 194 1224006

Насколько пидорство использовать std::map<int, bool> ? Мейерс писал что-то о таком?

7 июля, 12:20 195 1224007

>>1223920
Тссс. Я еще до volatile не дорос. Только в прошлом треде подсказали, что можно это заклинание дописать перед членом данных, чтобы const методы его меняли и не пришлось делать лишних указателей. Где оно еще бывает вообще не представляю, и зачем.

А это важное на практике слово, нужно владеть?

Ответы2404124046

7 июля, 13:42 196 1224041

>>1224007
>чтобы const методы его меняли
Не volatile, а mutable же

Ответы24056

7 июля, 13:47 197 1224046

>>1224007
volatile это команда компилятору, чтобы он не оптимизировал переменную, т.к. она может изменяться из мест ему неподвластныхнапример в нескольких потоках
На работе периодически использую.
пишу-драйвера-под-линукс

Ответы2405624265

7 июля, 14:12 198 1224056

>>1224041
Блеять, точно. Я тогда вообще дремуч.
>>1224046
Спасибо. Так это нужно только в concurrent, а на первых порах можно в такие дебри не лезть или как?

Ответы24091

7 июля, 15:49 199 1224091

>>1224056
Если ты пишешь однопоточное приложение, тебе волатайл точно не нужен.

Ответы24141

7 июля, 17:23 200 1224141

>>1224091
Нужен для обработчиков сигналов (POSIX) и прерываний (работа на голом железе).

Ответы24191

7 июля, 19:26 201 1224191

>>1224141
Учитывая, какие он вопросы задаёт это ему не понадобится, поэтому я и сказал, что разве что в многопотоке пригодится.
Да и с железом в основном на си работают, в плане производительности кресты все таки медленнее.

Ответы24676

7 июля, 20:12 202 1224217

Ананасы, на какую зп можно рассчитывать крестовику (знание stl среднее(а может и нет, хуй знает), по большей части приходится работать с qt/qml). На текущий момент получаю 20к и у меня не иллюзорно пригоратет от того, что знакомые веб макаки получают 30-60к в нашей же мухосране, от того, что один 1сник, который научился "программировать", когда пошёл работать, получает 40к. Короче, вопрос в том, есть ли смысл развиваться в крестах или лучше сменить профиль (интересуют по большей части деньги, возможности покинуть мухосрань пока нет)
А, ну и в том, возможно ли на крестах найти аутсорс?

Ответы2421824256

7 июля, 20:17 203 1224218

>>1224217
Если тебя интересуют деньги, то на крестах ТЫ их не заработаешь, ебашь в веб, там легко вкатиться и деньги будут.
мимо-получаю-35к-на-си

7 июля, 21:27 204 1224256

>>1224217
В мухосранях основной спрос на кресты создают всякие говНИИ, НПО, НПП. Платят там, как водится, хуёво. Спрос на вёб создаёт бизнес и он готов платить больше. Туши пердак и перекатывайся.

535 Кб, 811x627
7 июля, 21:39 205 1224265

>>1224046
>volatile это команда компилятору, чтобы он не оптимизировал переменную, т.к. она может изменяться из мест ему неподвластныхнапример в нескольких потоках

7 июля, 22:09 206 1224272

Бля, объясните все же, в чем тут баг?
https://www.tutorialspoint.com/gnu_debugger/gdb_debugging_example2.htm

Ответы24278

7 июля, 22:23 207 1224278

>>1224272
int^ b;
setint(b, 10);
cout << ^b << endl;
^ == звёздочка

b - ничем не инициализированный указатель. Когда ты в setint пытаешься его разыменовать, то идёт обращение к памяти, к которой доступ не разрешён. Вот ты и ловишь segmentation fault.

чтобы бага не было, нужно было написать
int ^b = new int
Тогда бы система выделила кусок памяти в куче
Нужно было бы ещё не забыть delete b; ну и ^ == звёздочке

Ответы24282

sage 7 июля, 22:29 208 1224282

>>1224278
Ясно. Спасибо.

7 июля, 22:46 209 1224288

>>1223548
Конечные автоматы.

8 июля, 19:12 210 1224676

>>1224191
Да-да, спасибо. Мне это пока точно рановато. То есть можно конечно, шутки ради позадротить, но думаю, сейчас еще не время.

Кстати, по Qt бывает отдельный тред или можно тут вопрос задать?

Ответы24715

53 Кб, 860x456
8 июля, 19:56 211 1224692

почему не рандомайзит мой, мать его, вектор

Ответы24693247192481824856

8 июля, 19:57 212 1224693

>>1224692
извиняюсь я тупой, вопрос закрыт

14 Кб, 424x155
8 июля, 20:06 213 1224698

почему гененируются 4 одинаковых значения? кто-нибудь, помогите понять как работает рандом в плюсах

Ответы247112471824719

8 июля, 20:26 214 1224711

>>1224698
Снаружи цикла делай сранд.

8 июля, 20:31 215 1224715

>>1224676
>Кстати, по Qt бывает отдельный тред или можно тут вопрос задать?
Ни разу не видел, спрашивай тут

Ответы24812

8 июля, 20:39 216 1224718

>>1224698
rand хуярит псевдо случайные числа
srand определяет seed (хуй знает, как по-русски обозвать) для рандома. То есть, при одинаковом seed rand будет возвращать одинаковую последовательность чисел.
Так как цикл выполняется очень быстро, а time особой точностью не блещет, то получается, что ты на каждом проходе инициализируешь одинаковую последовательность псевдо случайных чисел и каждый раз возвращаешь её первый элемент. Как-то так

8 июля, 20:44 217 1224719

>>1224692
>>1224698
Боже, какой же ты даун, я просто хуею с тебя.
Удали студию и больше никогда не пускай свои кривые руки к программированию

Ответы2472024818

8 июля, 20:45 218 1224720

>>1224719
Покажи свой код или проследуй нахуй.

Ответы2476424766

8 июля, 22:34 219 1224764

>>1224720
Хуй с твоим недорандомом, ты передаешь и возвращаешь вектор по значению, ты вызываешь свою функцию, твой вектор из внешнего кода полностью копируется в функцию, ты заполняешь копию, потом эта копия разрушается и возвращается уже копия копии, при этом результат ты никуда не присваиваешь, куда вот вы блядь лезете сразу в стл ещё бы мув-семантику сразу применил, чтобы лишнее копирование при возрасте не делать, если вы с обычными си-массивами работать не умеете колхозники, пиздец.ну правда ужас блядь какой-то

Ответы2476624809

8 июля, 22:41 220 1224766

>>1224764
>>1224720

Ответы24803

9 июля, 00:25 221 1224803

>>1224766
Зачем мне показывать свой код? Прокомментировав твоё говноподелие я уже показал то, что ты не понимаешь, что ты делаешь.
Тем более я пишу на си и работаю с железом, ты такого вообще не поймёшь.

Ответы24809

9 июля, 00:38 222 1224809

>>1224803
>я пишу на си
>>1224764
>вы с обычными си-массивами работать не умеете

Ну так уёбывай в красноглазый тред, а то от тебя горелым пердаком несёт. Ворвался, насрал, пошумел - обратно в нарнию.

Ответы24823

90 Кб, 1680x1010
9 июля, 00:44 223 1224812

>>1224715
Что он от меня хочет? Я понимаю, что там был какой-то widget.ui и он его хочет. Я его удалил, как объяснить товарищу nmake, что мне widget.ui не нужен и вообще, кто такой этот nmake, что порет мне элементарные примеры?

Ответы24828

9 июля, 00:48 224 1224818

>>1224692
Это товарищ >>1224719 намекает тебе, что не есть хороший стиль лишний раз копировать ветор в функцию. И в этом он прав.
Нормальная сигнатура такой функции — void foo(vector<int>& vec) {и прямо к нему внутри и применяешь свои колдунства, ничего возвращать не нужно, запишется в тот, который передали в функцию}
Работать с сишными массивами тоже, подозреваю, что не помешало бы уметь.

Ответы24826

9 июля, 00:56 225 1224823

>>1224809
Тем не менее я смог обосрать твоё неумелое использование вектора из стл, так что сиди и читай учебники, пока не начнешь понимать, что ты делаешь.
и то, что я сейчас пишу на си не значит, что я не работал на крестах, забавный ты какой, студентик

Ответы24827

9 июля, 01:03 226 1224826

>>1224818
Я смотрю у красноглазика появилась подружка.

Там на первой картинке вектор вообще никак не используется и вопрос не по нему задан. Это просто какая-то копипаста. А на второй картинке не показан контекст в котором определён task.

Ответы2482924872

9 июля, 01:03 227 1224827

>>1224823
где он там используется, даун?

Ответы24829

9 июля, 01:06 228 1224828

>>1224812
Если нет форм, то зачем тебе строчка 'FORMS+='. Попробуй убрать и пересобрать qmake-ом Вродев меню build есть опция
А nmake это виндовый аналог make. Кутя сначала генерирует мейкфайлы, а потом при билде они скармливаюся nmake.

Ответы24840

9 июля, 01:07 229 1224829

>>1224826
>>1224827
Не поверишь, но там вектор передаётся как параметр в функцию, а потом ещё и возвращается, и туда, и туда по значению, или это теперь не использование?
Ты какой-то охуевший, честное слово, мы тебе тут помогаем, на ошибки указывает, а ты к словам придираешься и жопой виляешь, не признавая или не осознавая ошибки.

Ответы248352485624906

9 июля, 01:25 230 1224835

>>1224829
>Не поверишь, но там вектор передаётся как параметр в функцию, а потом ещё и возвращается, и туда, и туда по значению, или это теперь не использование?
В контексте заданного вопроса он как используется? В него что-то где-то записывается?
>Ты какой-то охуевший, честное слово, мы тебе тут помогаем, на ошибки указывает, а ты к словам придираешься и жопой виляешь, не признавая или не осознавая ошибки.
Там два чела дали внятный ответ в чём ошибка с rand, а потом прилетел петух, котрый сначала просто насрал, а потом выяснилось, что срать он начал из-за левого чернового кода с делом не связанного.

Ответы24906

53 Кб, 1020x586
9 июля, 01:38 231 1224840

>>1224828
Попробовал закомментировать эту строчку. Те ошибки исчезли, теперь пишет Dependent…\widget.ui does not exist
Где еще может быть его упоминание? Уже проклацал по всем исходникам, никто не спрашивает widget.ui, но без него не компилируется.

А с make какая опция? Там только галка jom заместо nmake, это оно?
Я раньше всё через MVS делал и вообще не в курсах, как этот qmake настраивать.

Ответы24844

9 июля, 01:51 232 1224844

>>1224840
Да не мучайся. Создай новое консольное приложение Qt и перетащи туда свои файлы.

Ответы24846

9 июля, 01:55 233 1224846

>>1224844
Собственно, этот проект называется Fourth неспроста...
Я хочу понять, где он-скотина хранит память об этих старых виджетах.уи, чтобы потом в больших проектах в случае чего не ударить мордой в грязь.
Кстати, ты не в курсе, почему gitk не запускается через Tools, а только в обход через консольку?

27 Кб, 660x371
9 июля, 02:28 234 1224856

>>1224829
Да забейте вы на эту >>1224692 поехавшую чмоню, а то ему щас как жопу прострелит, как он тред засрет своим бугуртом и семенством, а нам потом перекат пилить.

Кстати, этот ноускил, вызывает randomize(task) и не присваивает взращаемое значение куда либо, так что получается этот горе-вкатывалься тут в тройне обосрался, что доставляет только еще больше лулзов.

Ответы248722490625176

9 июля, 04:09 235 1224872

>>1224856
А вот и подружка подружки к нам пожаловала.

И казалось бы >>1224826, но "Я тред не читала, но спешу заметить..."
>Кстати, этот ноускил, вызывает randomize(task) и не присваивает взращаемое значение куда либо, так что получается этот горе-вкатывалься тут в тройне обосрался, что доставляет только еще больше лулзов.

Весёлая тут у вас компания однако.

Ответы24906

9 июля, 07:36 236 1224904

>>1223982
>>>Где бывают человеческие объяснения новой-актуальной C++17 концепции?
>
>>http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0135r0.html
>
>Очень смешно

Чего тебе смешно, довен? Это и есть человеческое объяснение. В следующей ревизии, r1, предлагаются изменения в текст стандарта, вот там нет особо мотивации и объяснения, почему это делается так.

9 июля, 08:46 237 1224906

>>1224829
>>1224835
>>1224856
>>1224872
Дебилы, дебилы never change.

Ответы2492024943

9 июля, 09:37 238 1224920

>>1224906 Ну ты в дискорд то заходи, есть еще о чем поговорить.

81 Кб, 1920x1080
9 июля, 11:08 239 1224943

>>1224906
Sosach... sosach has changed.
It's no longer about nations, ideologies, or holywars. It's an endless series of anonymous shitposts, fought by mercenaries and machines.

Sosach — and it's consumption of life — has become a well-oiled machine.

Sosach has changed.

9 июля, 15:46 240 1225073

В одной статье на хабре увидел следующий код:

template<class T> struct remove_reference<T&&>
{
typedef T type;
};

Всё в нём ясно кроме одного, в чём смысл треугольных скобок после названия структуры? Гуглил запросы "Структуры на шаблонах", "шаблонные структуры" и не нашёл ничего похожего.

Ответы2507925080

9 июля, 15:51 241 1225079

>>1225073
Это частичная специализация шаблона для всех типов T&&. Есть более общий шаблон template<class T> struct remove_reference который и специализируется.

https://ru.wikipedia.org/wiki/Частичная_специализация_шаблона

Ответы2508325133

9 июля, 15:51 242 1225080

>>1225073
Гугли шаблонные классы, это одно и тоже с разницей до приватности полей и наследования.

Ответы25084

9 июля, 16:00 243 1225083

>>1225079
Спасибо

9 июля, 16:02 244 1225084

>>1225080
Да гуглил - всё не то. Анон выше скинул то, что нужно

76 Кб, 600x536
9 июля, 17:37 245 1225133

>>1225079
>https://ru.wikipedia.org/

Ответы25176

9 июля, 19:36 246 1225176

>>1224856
Пока ты ему отвечаешь, он не свалит. А может быть это просто средней толщины тролль. А может быть ты тролль. Я тоже, как вариант.

>>1225133
Нигде не видел лучшего объяснения Паттернов с примерами. Читать Банду после статей на вики это просто мазохизм.

9 июля, 20:12 247 1225200

Чому мне Прата пишет, что можно объявлять структуры внутри класса, а g++ не видит это объявление внутри класса, приходится структуру выносить за класс перед его объявлением.
?

Ответы25212

9 июля, 20:21 248 1225212

>>1225200
Скинь код, потому что так делать можно.

Ответы25214

9 июля, 20:26 249 1225214

>>1225212
https://pastebin.com/RXxwnNZP

Ответы25218

9 июля, 20:33 250 1225218

>>1225214
А где у тебя gcc не видит, в каком методе?

Ответы25221

9 июля, 20:39 251 1225221

>>1225218
g++ не видит, что я дурак.
Всё, разобрался.
Сначала делаю
public:
struct foo {...};
Потом снова
private:
foo b, a;
public:
....
И, где нужно, не забываю разрешить контекст. И всё работает

95 Кб, 595x840
9 июля, 20:51 252 1225229

Йо народ! Может я не по адресу,но код вроде на c++. Тут обычно умные люди сидят,буду рад если поможете ляп найти.
Короче сам трабл : решал задачу - https://informatics.msk.ru/mod/statements/view3.php?id=656&chapterid=2966#1,но где-то проебался. С динамикой такого уровня проблем нету,но тут че-то накосячил. Заранее спасибо . Код : https://ideone.com/qK1ai0 Знаю матрица в чар там не нужна,можно обойтись и булевской,но че-то меня тогда от кофе шпехнуло.

Ответы2523025365

9 июля, 20:53 253 1225230

>>1225229
Тесты грят,что "неверный ответ". Проходит правильно только 6 штучек

9 июля, 22:00 254 1225271

>>1221781
Так откати проект до выстрела в ногу и продолжай

9 июля, 22:07 255 1225280

Есть желание заняться ml/ai/computer vision, выбор пал на кресты и питон.
Какие подводные?

53 Кб, 186x200
9 июля, 22:49 256 1225310

Кароч вопрос к профи, если тут вообще есть такие. Че-то не могу решить проблему с таск шедулером.
Есть дерево задач с основанием b ( это значит что оно нихуя не бинарное и в ноде может быть b потомков, но один родитель ), ясен хуй задачи в дереве зависимы от результатов их потомков, так что нельзя выполнить задачу с верхушки прежде чем ее потомки не будет выполнены.
Кароч, у меня есть пул потоков, я думал сделать что-то типа work stealing алгоритма, но потом подумал что это нахуй не нужно и геморно, сейчас проблема в том, что я не знаю как распределить это дерево задач по n потокам.
Че ребзя думает?

Ответы25313

9 июля, 23:00 257 1225313

>>1225310
Кароч, меня асинило, думаю ебануть по дереву BFS'ом, запихнуть все это говно в очередь и потом просто каждый поток будет брать с очереди по задаче себе, правда тут может возникнуть потенциальная проблемка если какой-то поток затупит и всем придется его ждать, чтоб выполнить след задачу, вообще хуйня а не идея, забейте.

Ответы25314

9 июля, 23:03 258 1225314

>>1225313
Хотя я тут же нашел решение. Можно использовать очередь с приоритетом и к каждой задаче добавить состояние и сортировать по готовности и номеру, то есть неготовые к выполнению задачи полюбому будут после готовых и это решит проблему с затупом, конечно приорити кью тоже не бесплатная будет ну это пох.

Ответы25362

10 июля, 00:27 259 1225362

>>1225314
>я придумал велосипед, но с каждой новой идеей приближаюсь к тому, что использует большинство
Молодец, тебе немного осталось.

Ответы25368

10 июля, 00:37 260 1225365

>>1225229
39 строка s.reserve(); это какбэ не разворот строки

Ответы25404

10 июля, 00:41 261 1225368

>>1225362
>что использует большинство
И что же это?

Ответы25371

10 июля, 00:48 262 1225371

>>1225368
Ну очередь с приоритетом уже хороший вариант, явно лучше чем n-нарное дерево.

Ответы25372

10 июля, 00:54 263 1225372

>>1225371
Так дерево по любому надо строить, чтобы заранее была структура и заранее знать финальную таску, мне это надо чтобы заранее ее задетектить и выйти всеми потоками, освободить захваченную ими память и отдать ее тому потоку.
Короче пока с очередью с проиоритетом подожду, щас делаю обычную очередь через BSF обход.

Ответы25394

10 июля, 02:34 264 1225394

>>1225372
В этой вашей джаве была подобная ебанина. Точно не помню че там, но вроде таски распределяются какой-то пизданутой смесью work-stealing + двусторонняя очередь, у которой, один конец синхронизирован, а другой, сука, lock-free.
Или я упоролся и оно работает не так.

10 июля, 06:04 265 1225404

>>1225365
Ой-ей,братан, опечатался. Че-то меня внатуре вчера слишком ебнуло :). Спасибо тебе большущее! Решил.

10 июля, 06:34 266 1225405

Ебать, последний месяц такой кайф получаю от с++, просто пиздец. Какой же охуенный язык, а я его так хейтил, так хейтил, написание на нём было похоже на долбление в жопу без вазелина, а теперь будто вазелин для себя открыл и стал удовольствие получать.

Ответы2540825554

10 июля, 07:24 267 1225408

>>1225405
В вашем НИИ наконец выдали зарплату за январь?

58 Кб, 1493x893
10 июля, 09:05 268 1225438

Что надо сделать, чтобы выключить сообщения об ошибках cmake? Не люблю, когда из-за синтаксической ошибки так просирается cmake, как на пике

10 июля, 12:54 269 1225511

Я вот думаю, помочь местным вкатывальщикам, проведя с ними пару фейковых собесов, или оставить их страдать?

Ответы25545

10 июля, 14:16 270 1225545

>>1225511
А ты кем сам-то будешь? Студентом-первокурсником узнавшим, что такое циклы и рекурсия и теперь считающим себя полубогом?

Ответы25564

10 июля, 14:39 271 1225554

>>1225405
>последний месяц такой кайф получаю от с++, просто пиздец
> я его так хейтил, так хейтил, написание на нём было похоже на долбление в жопу без вазелина, а теперь будто вазелин для себя открыл
https://ru.wikipedia.org/wiki/Стокгольмский_синдром

C++ -- это эталон черве-пидорского языка. Понять его гнилую сущность можно только если перестать на нем программировать и вернуться к нему через какое-то время. Тогда его омерзительная парадигма сама вылезет наружу.

А так-то человек способен и к концлагерю привыкнуть и к тюрьме с парашей и петухами и к армии.

Ответы25557

10 июля, 14:43 272 1225557

>>1225554
Двачую этого.
Начал писать на плюсах уже давным давно, потом понял что это говнина полная, стал писать на Си, понял на сколько это чистый и простой язык и как удобно на нем прогать, теперь опять вернулся на плюсы из-за работы и думаю ебтваюмать какая же это хуйня раздутая. Хотя мне кажется я уже стал привыкать и у меня уже не вызывает такого отвращения С++.

10 июля, 14:57 273 1225564

>>1225545
Сениор в топовой конторе ДС, спикер забугорных и русский конференций по крестам

Ответы2557225580

16 Кб, 294x308
10 июля, 15:14 274 1225572

>>1225564
>Сениор в топовой конторе ДС, спикер забугорных и русский конференций по крестам
Хуя се манямир.

Ладно, проверю тебя немного.
1. Можно ли использовать эксепшены в деструкторе и почему?
2. Что такое ABA-проблема?
3. Какой алгоритм сортировки наиболее оптимальный для сортировки 1 млн. 32-битных беззнаковых интов?
4. Есть высоконагруженный сервер, с миллионом пользователей. У пользователя есть какой-то ID скажем в виде 64-х битного инта. Все данные о пользователе хранятся в SQL БД. Серверу необходимо быстро проверять авторизован ли этот пользак или нет. Что сделаешь, какие алгоритмы применишь?

Ответы2558025593257352576625908

10 июля, 15:50 275 1225580

>>1225572
Эй >>1225564 сеньор-помидор, куда же ты слился, судорожно гуглишь ответы? Я так и думал.

10 июля, 15:58 276 1225582

1. При пробросе исключения наверх и его обработке там текущий деструктор не выполнится до конца и все, пизда.
2. ну там чет про наследование кароч) бля)
3. Radix? Я помню, что она для каких-то чисел, но не помню как и почему. Приходится выбираттюь явно не между слиянием и быстрой, судя по условию.
4. Ну пользователей онлайн много быть не должно, могу себе позволить хэшсет из авторизованных в рантайме.

Ответы255982590525907

10 июля, 16:14 277 1225593

>>1225572
>2. Что такое ABA-проблема?
Щас бы все эти акронимы помнить. Всегда прогирывал с таких вопросов на собесе.

Ответы25598

255 Кб, 512x512
10 июля, 16:21 278 1225598

>>1225582
Ясн)) Сеньор он)
1. не верно
2. не верно
3. Radix было бы верным ответом
4. Их не онлайн много, их просто много, и надо отсеевать тех кто не авторизован. Даже если онлайн 10 пользователей, а всего их несколько миллиардов. Ты что в хешсет все 10 лярдов запихнешь?

>>1225593
Бля, это важная вещь из Lock-free алгоритмов.

Ответы25600

10 июля, 16:27 279 1225600

>>1225598
Я другой помидор)

4. Перечитай, в хэшсете только те, кто онлайн.

Ответы25602

10 июля, 16:29 280 1225601

А вот за локфри у меня в нии бьют пиписькой по ладошкам)

10 июля, 16:30 281 1225602

>>1225600
>4. Перечитай, в хэшсете только те, кто онлайн.
Короче это не верно.
Верное решение это Блум фильтр.

10 июля, 19:46 282 1225716

А что, разве когда удаляешь указатель через delete, он автоматом не превращается в nullptr?

Ответы25718

10 июля, 19:47 283 1225718

>>1225716
Слыш, бля, умные указатели быстро заюзал!

Ответы25738

10 июля, 20:03 284 1225735

>>1225572
1. Нельзя, деструктор не должен брость. Есть повод нарушать это предписание если ты очень-очень хорошо понимаешь, что делаешь, но всё равно не стоит, ведь за тобой придут другие и могут не так понять. Страуструп писал.
2. Не знаю, не знаю, даже, это ава или аба.
3. Radix?
4. Кроме хеш-таблицы с открытой адрессацией ничего в голову не лезет.

Короче, не знаю. Ах да. Я не тот сеньйор-помидор из топа, а просто мимонуб. Так что, любопытно прочитать, попал ли пальцем в небо и как вообще правильно на эти вопросы отвечают.

10 июля, 20:06 285 1225738

>>1225718
Это будет в конце статьи как хэппи-энд и ответ на все проблемы, а пока что мне нужно понять, в чем собственно проблемы.

http://www.stroustrup.com/resource-model.pdf пункт 3.4, после cleanup() нет ни единого разрываnullptr. Так и должно быть?

10 июля, 20:42 286 1225766

>>1225572
Вопрос про С++ ровно 1, и тот джуновский. Все остальное - специфика. Особенно про SQL насмешил.

Ответы257682577125783

10 июля, 20:44 287 1225768

>>1225766
Чаю адеквату.

10 июля, 20:49 288 1225771

>>1225766
Ну и где правильный ответ на него, а?

Ответы25905

10 июля, 21:05 289 1225783

>>1225766
Теоретически при соблюдении хуевой горы условий можно. Практически - если это не одноразовый код в стол, то такой кусок говна не пройдет ревью никогда.

11 июля, 00:58 290 1225899

Господа! Я в шоке. Сенсация, Страуструп переобулся.

Читал в TCPL 11 года, что, дескать умные указатели лучше всегда. Лучше всего прием-передача по значению/передвижение/локальные переменные. Чуть хуже умные указатели с обертками и прием-передача по указателю/ссылке. Еще хуже голые new и delete и вообще простых указателей лучше избегать.

Теперь читаю заметку 2015 года. И что же он пишет?
In function signatures, limiting the use of ownership pointers (e.g., unique_ptr and shared_ptr) to cases where you actually want to manipulate ownership is important for generality and performance.

И ровно перед этим выводом пример, где
void f(int★ b, int★ e);
лучше, чем
void f(shared_ptr<int> a, size_t n);
Ну и аргументы на этот счет, естественно. Всё убедительно. Такая вот хрень.

Ответы25904

11 июля, 01:14 291 1225904

>>1225899
Все сразу знали что умные указатели медленные как тварь и юзать их надо очень осторожно.

Ответы25912

11 июля, 01:33 292 1225905

>>1225771
Если тут >>1225582 неправильно ответил, то там что-то про повторный вызов деструктора. Детали не помню.

11 июля, 01:45 293 1225907

Короче ты пидор здесь >>1225582 правильно было, заставил меня хуйни написать мразь. Извинись.

11 июля, 01:45 294 1225908

>>1225572
>1. Можно ли использовать эксепшены в деструкторе и почему?
Можно, т.к. стандартом не запрещено.

11 июля, 01:47 295 1225910

А твой фильтр хуюма этот тот же хэшсет с хуёвой хэшфункцией. А написание хэшфункции я не уточнял, так что технически ответил верно. Я же не долбоёб вдаваться в детали, я мыслю абстракциями.

Ответы25911

11 июля, 01:51 296 1225911

>>1225910
>А твой фильтр хуюма этот тот же хэшсет с хуёвой хэшфункцией.
Чо ебонутый? Это совсем разные вещи, единственное общее у них это пожалуй, что они оба использую хеш функции.

11 июля, 02:09 297 1225912

>>1225904
Дык, выходит, наоборот: осторожно-то надо использовать старые добрые указатели, чтобы в ногу не выстрелить. А умные указатели берут на себя часть задач и за это тормозят. Хотя, подожди, тормозят ли они еще непонятно. Страуструп пишет, мол, no overhead и т. д.

Только вот, когда его читаешь, не всегда понятно, где реально, что есть по факту, а где светлые идеалы «вот когда настанет коммунизм, у всех будут концепты». Я так два дня искал поломку в MVS, думал только у меня-дурака они не работают.

Ответы25914

11 июля, 02:26 298 1225914

>>1225912
Во-первых, чтобы не выстрелить себе в ногу необязательно юзать умные указатели, достаточно пользоваться RAII контейнерами и проектировать код так, чтобы свести к минимум надобность голых указателей, особенно с move конструкторами и операторами присвоения это сделать не сложно, хотя это тоже не быстро.
Во-вторых, ты в курсе как устроен shared_ptr? Внутри него атомарный счетчик ссылок, а атомарные операции сами по себе не быстрые т.к. требуют синхронизацию кешей просессора. Более того, по умолчанию в С++11 используется модель памяти sequentially consistent ordering, что если мне не изменяет память например на процессорах х86 вызывает mfence(), что значит флуш процессорного конвеера и синхронизацию всех кешей, что уже убивает нахуй всю производительно т.к всякие технологии типа out-of-order execution и быстрый доступ к кеш памяти уже не работают.

Вот даже на cpp reference написано что.
>The default behavior of all atomic operations in the library provides for sequentially consistent ordering (see discussion below). That default can hurt performance

Так что, если ты даже юзаешь шаред птр, то передавай его внутри стековых функций по ссылке а не по значению.

Ответы2592125928

11 июля, 02:28 299 1225915

Есть примеры, где C++ быстрее C?

11 июля, 02:57 300 1225921

>>1225914
Ok. Я изучал C++ по четвертому изданию, так что идея передвижений мне зашла норм.
А где можно популярно почитать обо всех этих sequentially consistent ordering и чем чреваты всякие синхронизации? std::memory_order на референсе загуглил, но кажется, мне нужно что-то ближе к уровню «дети, смотрите, гномики двигают биты на две ячейки вправо, чтобы число быстро разделить на четыре». Есть какой-то практичный материал с примерами?

Ответы25934

11 июля, 03:08 301 1225924

>>1221619 (OP)
Что скажете о CppCoreGuidelines? Обязательно с этим всем ознакомиться, чтобы хорошо программировать на плюсах или можно обойтись парой видеокуров с лукошком статей?

Ответы25938

11 июля, 03:29 302 1225928

>>1225914
>Во-вторых, ты в курсе как устроен shared_ptr? Внутри него атомарный счетчик ссылок, а атомарные операции сами по себе не быстрые т.к. требуют синхронизацию кешей просессора. Более того, по умолчанию в С++11 используется модель памяти sequentially consistent ordering

По-умолчанию sequentially consistent, а внутри shared_ptr — не по-умолчанию.
Зачем ты приплёл умолчание к shared_ptr?

11 июля, 04:48 303 1225934

>>1225921
В шапке Уильямс был. У него не то чтобы с гномиками, но как вводный курс сгодится.

11 июля, 05:22 304 1225938

>>1225924
Пробегись по ним сам, займет пару часов. Там в основном очевидные вещи.

11 июля, 14:56 305 1226116

Почему у меня не работает конструкция вида:
template <typename T>
ругается на следующий за ним код, например если за ним
int a;
ошибка
template declaration of 'int a'
среда Qt если что

Ответы2612026247

11 июля, 15:03 306 1226120

>>1226116
Для этого нужна среда vim.

Ответы26123

11 июля, 15:05 307 1226123

>>1226120
нахуй мне vim, как проблему решить?

Ответы26124

11 июля, 15:05 308 1226124

>>1226123
Сменить среду на vim.

Ответы26125

11 июля, 15:14 309 1226125

>>1226124
Нахуй иди дебилоид, сам разобрался, рака яиц тебе гнида

11 июля, 15:15 310 1226126

Ананасики, привет.

Мне люто доставил сайт learncpp.com и в свое время когда-то лёрн питон зе хард вэй, подскажите ресурсов для изучения алгоритмов и структур данных по возможности похожего формата - не обязательно прям такого же, но чтобы текстом и поменьше водицы. Если тоже онлайн, то вообще заебись, удобнее читать с мобильного, но и годные книги подойдут, если без растягивания и хуеплетства, а то это мотивацию снижает довольно быстро. Здорово, когда прочитал-впёр-пошел реализовал какой-то велосипед на коленке - пошёл читать дальше. Желательно либо с привязкой к крестам или питон, либо без привязки вовсе, но если годно, то похуй.

Сразу прошу прощения за платину, и в гугле не забанен, но чёт выдаёт сплошные курсы на курсерах-юдаситях, а я их, если честно, рот ебал, не мой формат совсем.

Заранее спасибо, с меня тонны нефти. Да и вообще, если какая-то годнота есть, добавьте в шапку, дабы отправлять даунов вроде меня сразу. Оно понятно, что тред по крестам, но для нюфанек полезно знать, что надо учиться программировать, а не только языку.

Ответы2613026254

11 июля, 15:40 311 1226130

>>1226126
>одскажите ресурсов для изучения алгоритмов и структур данных по возможности похожего формата
geeksforgeeks — похожий формат?

11 июля, 17:09 312 1226159

Скажите мне кто-нибудь, что спрашивать на собеседовании, если 50% процентов не могут сказать, что выведет код
size_t i = 10;
for (; i >= 0; ++i) {
std::cout << i << std::endl;
}
Какой хуйни я только не слышал, просто пиздец.
Никто не слышал про лямбды, не знают, чем std::forward отличается от std::move. Не знают, что есть smart pointers

Ответы26170262062626126295264202766527737

11 июля, 17:34 313 1226170

>>1226159
В вузике методички 20 летней давности(Например у меня), а самому выучить это красный диплом не позволяет

>>что выведет код
Будет выводить i пока не произойдёт переполнение sizeof-типа

Ответы261712617426176

11 июля, 17:34 314 1226171

>>1226170
>>Будет выводить i пока не произойдёт переполнение sizeof-типа
Я как студент второго курса спрашиваю

11 июля, 17:38 315 1226174

>>1226170
>Будет выводить i пока не произойдёт переполнение sizeof-типа
Что будет когда произойдёт переполнение? Что такое sizeof тип? Какие будут первая и последняя выведенные цифры?

Ответы26178

11 июля, 17:41 316 1226176

>>1226170
> В вузике методички 20 летней давности(Например у меня), а самому выучить это красный диплом не позволяет
В том то и прикол, что хуйню несут не только студенты, а даже те, кто позиционирует себя как СЕНЬОРЫ!!!

Ответы26180

11 июля, 17:42 317 1226178

>>1226174
Ну обычно в отрицательное значение обращается и поэтому цикл прекратит выполняться

>>Что такое sizeof тип?
Тип хранящий максимальное значение на целевой платформе

>>Какие будут первая и последняя выведенные цифры?
Первая 10, а а последняя не ебу, это же от платформы зависит

Ответы2618326217

11 июля, 17:51 318 1226180

>>1226176
Ну что? Сильно хуёво ответил?

11 июля, 17:56 319 1226183

>>1226178
size_t беззнаковый тип же. Это бесконечный цикл.

Ответы26230

11 июля, 18:31 320 1226206

>>1226159
Да как обычно. Сначала задаёшь вопрос, а потом наводящие. Многие с первой подсказки преодолевают волнение и тупняк.
Лямбды хоть и есть, но и без них нормально живётся. Достаточно, чтобы кандидат смог привести любой пример использования того же std::sort с 3м параметром compare.
На move семантику тоже поебать - главное, чтобы различали передачу по ссылке и по значению.
smart pointers - тут хз. Если не знает, то можно потереть с кандидатом про утечки памяти и как их избежать. Опять же понимание проблемы важнее.

11 июля, 18:34 321 1226207

Сап, у меня трабла.
В общем, есть class Port.
Производный от него VintagePort. В нём есть
public:
const char *defstyle="vintage";
Вот здесь уже меня напрягает, что С++11 не даёт написать static const..., ошибка с каким-то constexpr для in-class static инитализэйшон. Я обучаюсь, про constexpr ещё не слышал
Короче, этот defstyle нужен мне для того, чтобы передавать его конструктору базового класса в списке инициализаторов-членов порождённого.
VintagePort::VintagePort (void) : Port("None", defstyle, 0)
Скажем так.
Типы Согласованы, НО. Вместо defstyle конструктор передаёт какую-то дичь, которую конструктор базового класса не воспринимает, это указатель в пустоту нахрен.
Алсо, на попытку объявить defstyle[]="vintage" вместо поинтера вообще
> internal compiler error: Segmentation fault
> internal compiler error: in finish_expr_stmt, at cp/semantics
> Please submit a full bug report
Но это уже совсем другая сторя

Ответы26210262122622026225

11 июля, 18:37 322 1226210

>>1226207
> инициализаторов членов

11 июля, 18:43 323 1226212

>>1226207
Я так понимаю, проблема в том, что конструктор базового класса вызван, но "vintage" от производного класса ещё не в нужном участке памяти.
Но я не могу сделать этот указатель статичным, он ругается на constexpr.
Вообще, если бы там была static const int (а так точно можно), то я был бы в праве отправлять указатель на этот int конструктору базового класса в списке инициализаторов членов? Ведь static всегда должен лежать в памяти, какая проблема знать его адрес?

Ответы26220

11 июля, 18:46 324 1226217

>>1226178
> Первая 10
Ну ХОТЬ ЧТО-ТО. Зачастую говорят, что первая цифра - 9, так как префиксный декремент

Ответы2622326230

11 июля, 18:52 325 1226220

>>1226212
>>1226207
Минутка гугления и
static constexpr const char *deftyle="vintage";
мне помогли.

Ответы26257

11 июля, 18:57 326 1226223

>>1226217
>первая цифра - 9, так как префиксный декремент
прокекался со смекалочки

11 июля, 18:57 327 1226225

>>1226207
>const char defstyle="vintage";
defstyle хранит указатель, значение которого получается во время выполнения, поэтому нужно выносить инициализацию за пределы класса.

struct VintagePort : public Port
{
static const char defstyle;
};

const char* VintagePort::defstyle = "vintage";

Ответы26257

11 июля, 19:04 328 1226230

>>1226183
Точно! Я вспомнил про uintptr_t и решил, что в size_t есть знак

>>1226217
> так как префиксный декремент
Там вообще всё равно какой он

11 июля, 19:15 329 1226237

Перекатился из плюсов в веб разработку нода, как же охуенно, господи

Ответы26239

11 июля, 19:19 330 1226239

>>1226237
>Из плюсов перекатился в минусы.

11 июля, 19:23 331 1226247

>>1226116
Ты что, объявляешь шаблонную переменную, не определяя? Это вообще должно работать?

11 июля, 19:29 332 1226254

>>1226126
Я по алгоритмам сохранил в папку «Справочные материалы» такие ссылки:
http://e-maxx.ru/algo/ — в меру разжевано
http://algolist.manual.ru/ — просто дохрена всего
Курсы по алгоритмам проходил на степике, могу сравнить: CSC хорош, многовато мат. анализа, маловато практики, но неплох. Mail.ru так себе, неплохие слайды на Си, но никакущий лектор, лучше листать, не слушая. Кстати, вот PDF https://drive.google.com/drive/u/0/folders/0B6oYnrxwl0UcYWtfeFgzS2EzVGc

ГикиДляГиков уже советовал кто-то — и там тоже попадаются очень неплохие материалы, особенно видосы бывают с минутной визуализацией того, что в абстрактном тексте за час хер просечешь.

11 июля, 19:33 333 1226257

>>1226225
Да, но это неудобно, но помогает constexpr >>1226220

Вообще, компилятор сам мог видеть, что там constexpr, однако я ему должен сам говорить об этом почему-то.

11 июля, 19:37 334 1226261

>>1226159
Нуб. Попробую ответить, покритикуйте.
Код будет выполняться бесконечно, т. к. size_t это беззнаковое целое и любое его значение соответствует условию >=0. Ну, выводить будет все эти значение, начиная с 10, каждое на новой строке, очищая буфер (или синхронизируя, тут могу путать с ends).

Лямбды в C++14 уже можно делать как auto lambda = [](auto einz, auto zwei){return einz+zwei;} это меня повергло в шок, кажется, в картинке auto(auto auto){return auto;} иронии куда меньше, чем казалось.
Про forward мне тут недавно объяснили. Я так и не понял, правда, но запомнил, что forward реализуется с std::remove_reference и нужен для perfect forwarding, вроде как его еще параметризовать обязательно, а move тип сам выводит и по сути только кастует к rvalue_reference.
Умные указатели бывают типа shared_ptr и unique_ptr, первый держит атомарный счетчик ссылок, второй передает исключительные права и зануляется есличо. Как оказалось, ими можно злоупотреблять, но Страуструп пишет, что таки-не нужно.

Ответы26307

11 июля, 20:21 335 1226295

>>1226159
Все хорошие крестовики либо сидят на жопе, либо уже уехали. Мы на 250+к чистыми искали полгода 1 разраба, и того переманили еле-еле

Ответы26297

11 июля, 20:24 336 1226297

>>1226295
Хуя се 250к чистыми, это тимлида что ли?
Я вот 200к запросил, и то мне там пиздец придется за тимлида хуячить.

Ответы26300

11 июля, 20:28 337 1226300

>>1226297
Нет, обычный сениор. Просто приходят совсем дауничи

Ответы26331

11 июля, 20:31 338 1226307

>>1226261
Ещё есть weak_ptr, в пару к shared, чтобы не было циклов жёстких ссылок, ещё есть аналогичные, только с _array постфиксом, для массивов соответственно, но они вроде только в бусте?не в курсе, сам пишу на си

Ответы26353

11 июля, 21:28 339 1226327

Планирую через пару месяцев РАБоту сменить, хочу 150.
Пишу всякое серверное говно под Линукс.
Что нужно знать ныньче?
Очевидно, ДС.

11 июля, 21:38 340 1226331

>>1226300
Расскажи про совсем дауничей.

Ответы26355

11 июля, 22:48 341 1226353

>>1226307
Еще был auto_ptr, который теперь осуждается, а еще примерно 10 видов всяких моднейших умных указателей под разные штуки. Я же назвал основное, что сам еще худо-бедно использовал. weak читал, но не владею.
Что с остальными вопросами?

Кстати, кто тут собеседования проводил, можешь еще пару вопросов кидануть для размышлений о смысле жизни и всё такое?

Ответы26451

11 июля, 22:51 342 1226355

>>1226331
ну что тебе рассказать? Висит вакансия, 250 чистыми.
Приходят челики, которых спрашиваешь - расскажи про push_back вектора.

Ответ - нуу.. муу... элемент в конец добавляется. Ни про капасити, ни про плейсмент нью, ни про реаллокацию, нихуя не могут сказать, даже с подсказками. И так почти по всем вопросам

Ответы2635726373

11 июля, 22:52 343 1226357

>>1226355
> плейсмент нью
Это че?

мимо сеньор

Ответы26360

11 июля, 23:05 344 1226360

>>1226357
https://ru.stackoverflow.com/questions/461819/placement-new-c

Ответы2636426365

11 июля, 23:12 345 1226364

>>1226360
А эту хуйню я знаю.
Вообще откровенно говоря, в С++ управление памятью довольно уебищно сделано, чего стоит только отсутствие realloc. Если ты че-то хочешь с памятью мутить тебе все равно придется прибегать к сишным функциям.

40 Кб, 604x604
11 июля, 23:12 346 1226365

>>1226360

@sercxjo поведение оператора и было интересно. С Вами согласен, в свое время мне говорили взял Нюрку за ляшку, то за ляшку и отпускай (грубый пример), и когда брал за ляшку, а отпускал за сиську получал указкой по затылку))) вот и вопрос почему так нельзя??? наверное это си ++ – Артём 27 окт '15 в 22:37

Ответы2636926372

11 июля, 23:16 347 1226367

Посоветуйте нормальную книгу по QT, что б она была доступна для скачивания и актуально по сей день, желательно что б QT5 освещался, можно и 4ый поздних версий

11 Кб, 420x414
11 июля, 23:16 348 1226369

>>1226365
И ведь не стыдно же было такое написать Артёму.

11 июля, 23:18 349 1226372

>>1226365
блядь я ща заминусую этого дегенерата

11 июля, 23:18 350 1226373

>>1226355
>Висит вакансия, 250 чистыми.
Бля скинь ссылку, сюда. Хуле я на ваши вопросы как нехуй отвечу, если вы такую хуйню спрашиваете.

Ответы26378

11 июля, 23:23 351 1226378

>>1226373
https://hh.ru/vacancy/25604375
Вперед

Ответы26380263812638426437

11 июля, 23:27 352 1226380

>>1226378
> under Windows
> Good knowledge of Win32 API.
> understanding of Windows OS and Windows applications top-level architecture
Бля я под винду вообще почти не прогал никогда и не хочу. Я онли линукс.
А так ЗП не плохая да, был бы линукс я бы сходил на собес.

11 июля, 23:28 353 1226381

5 Мб, webm,
640x360, 0:4753 Кб, 1004x672

>>1226378

Ответы26383

11 июля, 23:30 354 1226383

>>1226381
Зря смеешься, C# может быть интерпретируемым языком.

Ответы2639126426

11 июля, 23:33 355 1226384

>>1226378
Если я на собесе скажу, что я с этого треда, ты за меня замолвишь словечко? побратски

Ответы26385

11 июля, 23:34 356 1226385

>>1226384
Нет

Ответы26388

11 июля, 23:35 357 1226388

>>1226385
ну ты и мразь
пойду расскажу где ты сидишь

Ответы26390

11 июля, 23:36 358 1226390

>>1226388
Я не думаю, что мое словечко стоит хоть что-то

11 июля, 23:36 359 1226391

>>1226383
Многие языки поддерживают мультипарадигменность,
но с таким же успехом можно назвать Джаву функциональным языком,
а Скалу объектно-ориентированным,

смешно короче такое видеть в вакансии с претензией на серьёзность...

мимо разработчик в сфере кровавого эентерпрайза

Ответы2639526409

11 июля, 23:41 360 1226395

>>1226391
При чем тут мультипарадигменность, ты поехавший что ли?
Если там указан С# как скриптовый язык, значит они его и использует для скриптов, а не как компилируемый ЯП.
Тем более для Сшарпа это вроде не редкость и на сколько я знаю он очень часто так используется во всяких 3д двиганах.

11 июля, 23:44 361 1226401

>>1221619 (OP)
помогите мне пожалуйста
я когда-то учил основы с++, и сейчас пытаюсь вспомнить. И я часто вижу синтаксис, который мне не понятен. Вот пример
https://www.ideone.com/nzi5Up
скажите, зачем на 6 строке между списком аргументов функции и телом функции стоит стрелочка, и что это такое вообще? Я вижу эту стрелочку даже там, где нет слова decltype

11 июля, 23:50 362 1226409

>>1226391
Это полная хуйня, а не код

12 июля, 00:00 363 1226420

>>1226159
>Скажите мне кто-нибудь, что спрашивать на собеседовании
В чём принципиальная разница между xvalue/prvalue до C++17 и после.
уверен, ты и сам не ответишь, собеседовальщик

Ответы2642226432

12 июля, 00:03 364 1226422

>>1226420
xvalue это вроде что-то более общее над rvalue и lvalue. prvalue - я хуй знает.

Всем на самом деле похуй на это, кроме долбоебов из комитета и разработчиков ебанутых либ.

мимо другой анон

Ответы26431

12 июля, 00:05 365 1226426

>>1226383
Ну и C++ тоже может быть.

Ответы26430

12 июля, 00:10 366 1226430

>>1226426
Вот С++ уже очень вряд ли.
А вот Си вполне может.

12 июля, 00:12 367 1226431

>>1226422
Додик зазубрил одну хуйню, и теперь всех ей доебывает, не обращай внимания

12 июля, 00:12 368 1226432

>>1226420
Кто-то уже в продакшн пускает с++17? Если нет, то зачем эту хуету спрашивать/знать?

Ответы26434

12 июля, 00:13 369 1226434

>>1226432
А кто в продакшен пускает
size_t i = 10;
for (; i >= 0; ++i) {
std::cout << i << std::endl;
}
?

Ответы2643626512

12 июля, 00:23 370 1226436

>>1226434
Ну тогда уж и про с++20 надо спрашивать с пристрастием. А то ишь неучей развелось.

12 июля, 00:26 371 1226437

>>1226378
Спешите видеть, nvidia хантит на дваче. Дно пробито :pepehands.
p.s. а чо вакансия открыта, если вы нашли челика?

Ответы2643826441

12 июля, 00:29 372 1226438

>>1226437
>а чо вакансия открыта, если вы нашли челика?
Чтоб челик не расслаблялся.

4 Кб, 224x225
12 июля, 00:29 373 1226439

Ладно вот знаете, что реально бесит в С++?
Что в стандартной либе дохуя чего нету для такого высокоуровнего языка, на какой с++ претендует.
Вот меня просто вымораживает, что там нету арг парсера, какого хуя я должен юзать для кросплатформенных проектов без доп либ?
Писать свои парсеры только для того, чтобы распарсить пару входных аргументов? Вы ебанулись? Я в ахуе.
Еще ужасно бесит, что нету файлсистемса до 17 версии, что нету до сих пор сетевой либы, приходится ебаный буст тащить за собой, чтобы сокет открыть.
Дохуя чего нету. Нету блять мемори маппед файлов, что тоже важная и полезная вещь. Из работы с файлами есть только уебищные сримы, которые тормозят как говно и вообще не понятно кому они нахуй нужны?
Какая-то всратая хуйня с async фьючерами и прочем, ей вообще кто нить пользуется? Единственно полезное из тредов это сами треды и мьютексы, а то раньше надо было буст тянуть.

Короче пиздец.

Ответы26444

12 июля, 00:32 374 1226441

>>1226437
Я просто вакансию запостил. Вакансий 2 было, 1 закрыли

12 июля, 00:34 375 1226444

>>1226439
Главное, что еще подливает масла к моему полыханию жопы, это то, что абсолютно все это есть в ссаной яве.
Писать на яве это вообще изи мод, просто выбираешь что тебе нужно из готовенького и все блять, и можно пол дня тусить у кофе машины и клеить телочек на ресепшене, пока твой коллега пидарасит конечные автоматы чтобы распарсить входной "-v -o file.o input".

Ответы2644926581

12 июля, 00:39 376 1226449

>>1226444
>Писать на яве это вообще изи мод
При наличии 64 ГБ памяти — да.

12 июля, 00:54 377 1226451

>>1226353
autoptr деприкейтед же, с введением мувсемантики его заменили юникптром, т.к. автоптр имел нелогичное поведениеразрушающее присваивание и етц

Ответы26713

12 июля, 02:22 378 1226470

>>1221991
для работы хуевый язык, я вот 10 лет на си++ пишу и на 3/4 вопрос не отвечу с собеседований, мне готовиться надо отдельно. Что бы пройти на си++ собеседование нужно где-то дней 5 освежать знания и еще пару недель штудировать темные места с учетом того что утебя уже 3+ опыта иначе можешь проект завалить.

Ответы26604

12 июля, 02:33 379 1226471

Аноны, а зачем умные указатели нужны, я вот только в чужом коде их вижу на QT, но мне они что-то доверия не вызывают.

Ответы2647926505

12 июля, 03:12 380 1226479

>>1226471
Чтобы не приходилось думать об освобождении памяти и тд?

12 июля, 06:27 381 1226500

Хочу напомнить всем кукаретикам в этом треде, что знать стандарт это не значит уметь им пользоваться. Так то.

12 июля, 07:31 382 1226505

>>1226471
Без них почти невозможно написать exception safe код

Ответы26530

12 июля, 08:15 383 1226512

>>1226434
Ну ты сравнил блять. Не знать поведение беззнаковых целых и какую то задротскую хуйню, которую нахуй никому в голове держать и не нужно.

Ответы26516

12 июля, 08:34 384 1226516

>>1226512
Не знаешь что-то — назови это "задротской хуйнёй".

Ответы26523

12 июля, 09:01 385 1226523

>>1226516
Lol. Про type overflow в 5 классе в церковно приходских школах рассказывают.
Это просто показатель, что человек базы не имеет.

Ответы26536

12 июля, 09:35 386 1226530

>>1226505
exception safe?
Это что за зверь? Я вообще не использую исключения, обычно работаю через код возврата.

Ответы26716

12 июля, 09:45 387 1226536

>>1226523
>type overflow в 5 классе в церковно приходских школах рассказывают.
Про "type overflow" разве только в цирковно-приходских и рассказывают. Я не представляю, что подобное словосочетание должно означать.
> Это просто показатель, что человек базы не имеет.
Кстати, беззнаковые не переполняются.

Ответы2654126543

12 июля, 10:01 388 1226541

>>1226536
а что значит переполняются? Я под переполнением понимаю, что все на хуй обнулится и флаг в регистре установится в 1, после чего снова начнется увеличение.

Ответы26558

12 июля, 10:06 389 1226543

>>1226536
>Кстати, беззнаковые не переполняются.
Што? И что будет если записать в чар больше 8 бит?

Ответы26649

12 июля, 11:01 390 1226558

>>1226541
Ну это и есть переполнение.
Просто дебич сверху максимум пару форм на qt шлепнул, а пиздит

Ответы26649

12 июля, 12:07 391 1226581

>>1226444
> пидарасит конечные автоматы чтобы распарсить входной "-v -o file.o input".
#inqlude <regex> не подходит тебе? Есть же стандартная либа для регулярных выражений.

Ответы2658326593

28 Кб, 650x382
12 июля, 12:11 392 1226583

>>1226581
>inqlude
На самом деле регэксп для другого.

911 Кб, 720x960
12 июля, 12:50 393 1226591

Посоветуйте, кто реально шарит, материалов по созданию высоконагруженных (сильно высоконагруженных) real-time систем c hard дедлайном до 100 мс.
Короче интересует, как организовать архитектуру, сокеты, треды, какие либы юзать лучше, какие механизмы, фреймворки, базы данных, как все это масштабировать по серверам. Ну все это.
Да, язык разработки естественно С++.

Ответы26592

12 июля, 12:51 394 1226592

>>1226591
гугли DPDK

12 июля, 12:53 395 1226593

>>1226581
ind mayne( void ) {
retrun 0
}

Ответы26631

12 июля, 13:20 396 1226604

>>1226470
Бля. Спасибо. Вот сегодня как раз на сайте вакансии мельком глянул, по ++ их вроде даже больше чем по #, но чот в 1/3 их сразу видно senior. Походу лучше в плане первой работы выбрать лучше другое направление.

25 Кб, 416x287
12 июля, 14:02 397 1226631

>>1226593

12 июля, 14:38 398 1226649

>>1226543
>>Кстати, беззнаковые не переполняются.
>Што?
То. http://eel.is/c++draft/basic.types#footnote-46:
> This implies that unsigned arithmetic does not overflow...

>>1226558
>Просто дебич сверху максимум пару форм на qt шлепнул
Маняпроекции as is.

Ответы27125

12 июля, 17:09 399 1226713

>>1226451
Я именно в таком смысле и вспомнил о нем, осуждается и депрекейтед что-ли не одно и то же означает?

Ответы2671826725

12 июля, 17:12 400 1226716

>>1226530
Выше в треде ссылочка на Страуструпа, статья на 21 страницу, объясняет чем голые new delete плохи и почему умные указатели именно таковы. Ты приучен к какому-то устаревшему стилю.

12 июля, 17:13 401 1226718

>>1226713
В c++17 auto_ptr вообще-то с концами удалили.

12 июля, 17:16 402 1226720

Читанул, что в C++14 внутри constexpr функций можно юзать циклы, хоть даже range based for. Пишу такую штуку для примера (перегрузка функции факториала).

constexpr void newfacto(const std::vector<int>& t)
{
std::cout << "This was a vector<int>, how on Earth would you do a factorial of this?\n"
"So instead just take a look at elements.\n";

for (const auto& i : t) std::cout << i << ' ';
std::cout << '\n';
}

error C3615: результатом функции constexpr "newfacto" не может являться константное выражение

ЧЯДНТ?

Ответы2672226728

12 июля, 17:18 403 1226722

>>1226720
> std::cout
Во время конпиляции оно работать не будет. Убери все кауты.

Ответы26732

12 июля, 17:19 404 1226725

>>1226713
Это значит не используется, если есть, в более поздних стандартах его выпилили кажется вообще.

12 июля, 17:21 405 1226727

Только что с собеседования, собеседовал меня паренек лет 25. Спрашивал про красночерные деревья, boost asio, отличия stdcall от thiscall или что-то в этом роде. Затем попросили на листочке написать код сортировки вставками. Задавали вопросы по Qt и т.д. Ясный хуй послали на хуй прям там в конце даже порекомендовали книжки какие почитать, просто ад( уже 5 лет на си++ пишу.

Ответы26733267342675626775

12 июля, 17:22 406 1226728

>>1226720
Ты неправильно используешь constexpr, это должно быть то, что выполняется в момент компиляции, а ты тут cout используешь.

Ответы26732

12 июля, 17:27 407 1226732

>>1226722
>>1226728

Хорошо, пробую такое:

constexpr size_t newfacto(const std::vector<int>& t)
{
size_t product{ 1 };
for (const auto& i : t) product *= i;
return product;
}

Выдает error C3615: результатом функции constexpr "newfacto" не может являться константное выражение

Я пытаюсь придумать хоть какой-то пример, где мне понадобился бы range-for loop в функции constexpt, но пока что не получается.
Почему он мне эту ошибку выдает, что он хочет?

Ответы26742

12 июля, 17:28 408 1226733

>>1226727
>Затем попросили на листочке написать код сортировки вставками
Никогда не понимал, нахуй такое помнить

Ответы2673726755

12 июля, 17:29 409 1226734

>>1226727
Так ты не ответил? Что вообще можно спрашивать про красночерные деревья, ассимптотику в среднем-худшем случае что ли?
И что за книжки порекомендовали (особенно по Qt интересно).

Ответы26738

12 июля, 17:29 410 1226737

>>1226733
да я понимаю, что это петушиная игра, хочешь получать больше 80к готовь очко к аллокатору векторов и мультимножеств

12 июля, 17:30 411 1226738

>>1226734
ясный хуй я деревья только бинарные знаю, т.к. вкатился в ай ти, а алгоритмы лень было учить, а книжку порекомендовали я сразу листок выбросил с автором в урну хипстерскую. Расстроился.

12 июля, 17:32 412 1226742

>>1226732
вектор (пока) не может быть константой конпеляции. Используй std::array

Ответы26755

12 июля, 18:04 413 1226755

>>1226742
Спасибо. Ты пишешь „пока“, значит в грядущих стандартах что-то намечается?

>>1226733
Например, как доказательство способности запоминать всякий хлам, который легче и практичнее загуглить или в справочнике посмотреть.

Ответы2675726759

12 июля, 18:06 414 1226756

>>1226727
Вспомнилась фраза а-ля "Говноконторы собесят как гугл, только вот платят как говноконторы"

Ответы26761

12 июля, 18:07 415 1226757

>>1226755
> Ты пишешь „пока“, значит в грядущих стандартах что-то намечается?
Да. Хотят для поддержки рефлексии сделать возможным динамическую аллокацию памяти в компил-тайме. Тогда поддержка вектора по сути станет вопросом добавления слова constexpr в его конструктор/деструктор и методы.

12 июля, 18:08 416 1226759

>>1226755
Яндексовская бригада из РГ21 пушит компайл-тайм вектор в стандарт.

12 июля, 18:14 417 1226761

>>1226756
ага, ну зарплата предлагалась около 100 т.р. Я бы не сказал, что что-то сложное спрашивали, так немного про регистры процессора, стек, еще хуйня всякая, в которую нельзя просто так вкатиться, а желательно пару лет с ней поработать. Задачки давали по красоте начиная с гномиков и заканчивая уточкой, но это еще на этапе эйчара. Я вот даже приуныл, что бы получать 100-150 т.р. на си++ нужно реально лет 5 отработать и еще пару месяцев готовиться. У меня уже 4/5 знакомых с с++ на php, java, c# перекатились. При этом ясный хуй, драли меня два часа по всем темам.
Виртуальные конструкторы(которых нет)
Исключения в деструктора(просто охуеть, до сих пор не знаю что это и как с этим решать)
Задачи по комбинаторике
Я ебал просто это все.

Ответы267642676926772

12 июля, 18:18 418 1226764

>>1226761
Задачи по комбинаторике-то тут каким боком?
Можешь пример задачи?

Ответы26774

12 июля, 18:32 419 1226769

>>1226761
Это ДС?

12 июля, 18:39 420 1226772

>>1226761
ага, рашкоконтора что-то в промзоне ебашит для газпрома.

12 июля, 18:40 421 1226774

>>1226764
сидят за круглым столом пидоры, подсчитать вероятность что пидоры сидят в порядке убывания/возрастания возраста. Вообще тоже известная задача.

Ответы268422684626913

12 июля, 18:41 422 1226775

>>1226727
Бля я тоже был щас на собесе, меня заебал путать собеседующий, главное я сначала правильно отвечал, а потом они начинал путать типа а если так хуяк хуяк и в итоге я уже не понимал где правда а где вымысел и менял свое мнение и так было раз 5-6 и он потом сказал типа ты плаваешь приходи попозже, при чем все вопросы были только по плюсам, типа как там виртуальное говно в каком порядке из деструкторов вызывается, как там деструктуры из консруткторов и т.п. короче бред, на который нормальному человеку похуй, но вишенка на торте была когда он стал спрашивать про то что будет если запросить доступ через квадратные скобочки у сета, если там будет инт, что он вернет, я говорю типа ноль, а он такой а почему ноль, я говорю ну типа по дефолту примитивные типы нулем ебашут там инициализируются, и он говорит а если мы сделаем массив интом через new[] и я такой понимаю что тут что-то не то уже получается, и говорю ну типа они не инициальизируются, а он говорит так что в сете тогда вернутся, и я уже настолько запутался и растерялся что говорю ну тогда получается вернется рандом, забыв о дефолтной инициализации. Короче пиздец.
А еще дал мне задачу написать программу выводящую числа от 1 до n без циклов и условных переходов, я сначала такой думаю да это же изи вспоминаю про паттерн матчинг на хаскеле, начинаю писать на С++ и понимаю, что такого тут нету ахаха. Потом вспоинмаю что это говно есть на шаблонах, думаю а это же изи, типа как факториал вычислить на шаблонах, но туплю с выводом на экран и не понимаю как сделать вывод в компайл тайме.

Короче, блять С++ такая хуйня. Лучше бы я на яву еще в 2013 прекатился и щас бы в хуй не дул и зарабатывал 500к штампуя фабрики, а тут тебя забраковывают с работой, не смотря на то что ты все алгоритмы знаешь на изусть, просто потому, что ты не выучил до мельчайших подробностей бред этого шизофреника страуструпа, который высрал С++, в котором нормальные люди используют все по минимуму, ибо понимают, что чем больше ты изъебоваешься с С++ тем больше вероятно себе выстрелить в ногу.

Ладно, похуй, я уже нашел норм работу, просто выстегивает то, что надо знать ебаную тучу подводных камней С++, просто чтобы на нем писать, когда в нормальных языках, ты сосредоточен на решении задачи и выборе алгоритма, а не на том, что тебе может выстрелить в ногу и какой костыль применить чтобы этого не произошло.

12 июля, 18:41 422 1226775

>>1226727
Бля я тоже был щас на собесе, меня заебал путать собеседующий, главное я сначала правильно отвечал, а потом они начинал путать типа а если так хуяк хуяк и в итоге я уже не понимал где правда а где вымысел и менял свое мнение и так было раз 5-6 и он потом сказал типа ты плаваешь приходи попозже, при чем все вопросы были только по плюсам, типа как там виртуальное говно в каком порядке из деструкторов вызывается, как там деструктуры из консруткторов и т.п. короче бред, на который нормальному человеку похуй, но вишенка на торте была когда он стал спрашивать про то что будет если запросить доступ через квадратные скобочки у сета, если там будет инт, что он вернет, я говорю типа ноль, а он такой а почему ноль, я говорю ну типа по дефолту примитивные типы нулем ебашут там инициализируются, и он говорит а если мы сделаем массив интом через new[] и я такой понимаю что тут что-то не то уже получается, и говорю ну типа они не инициальизируются, а он говорит так что в сете тогда вернутся, и я уже настолько запутался и растерялся что говорю ну тогда получается вернется рандом, забыв о дефолтной инициализации. Короче пиздец.
А еще дал мне задачу написать программу выводящую числа от 1 до n без циклов и условных переходов, я сначала такой думаю да это же изи вспоминаю про паттерн матчинг на хаскеле, начинаю писать на С++ и понимаю, что такого тут нету ахаха. Потом вспоинмаю что это говно есть на шаблонах, думаю а это же изи, типа как факториал вычислить на шаблонах, но туплю с выводом на экран и не понимаю как сделать вывод в компайл тайме.

Короче, блять С++ такая хуйня. Лучше бы я на яву еще в 2013 прекатился и щас бы в хуй не дул и зарабатывал 500к штампуя фабрики, а тут тебя забраковывают с работой, не смотря на то что ты все алгоритмы знаешь на изусть, просто потому, что ты не выучил до мельчайших подробностей бред этого шизофреника страуструпа, который высрал С++, в котором нормальные люди используют все по минимуму, ибо понимают, что чем больше ты изъебоваешься с С++ тем больше вероятно себе выстрелить в ногу.

Ладно, похуй, я уже нашел норм работу, просто выстегивает то, что надо знать ебаную тучу подводных камней С++, просто чтобы на нем писать, когда в нормальных языках, ты сосредоточен на решении задачи и выборе алгоритма, а не на том, что тебе может выстрелить в ногу и какой костыль применить чтобы этого не произошло.

Показать весь текст
Ответы2677926782

12 июля, 18:44 423 1226779

>>1226775
если ты не троллируешь, то на сколько была эта вакансия, тысяч на 150-200?

Ответы26781

12 июля, 18:48 424 1226781

>>1226779
Хз, я до вопроса о ЗП даже не дошел) Но там на серьора была, так что я минимум 200 попросил бы.

Не на самом, деле я понимаю, что я не идеально знаю С++, и понимаю, что у меня есть пробелы и не полное понимание что там да как работает, я просто еще до этого на Си писал 2 года и мне как-то похуй на С++ было, я задрил алгоритмы, ядро линукс, память и все в этом духе, ибо решает в основном только это, а не знание наизусть в каком там порядке виртуальное наследование сработает и прочая хуйня, которую лучше избегать вообще на практике.

Ответы26785

12 июля, 18:48 425 1226782

>>1226775
бля, если честно, я из-за этой хуйни даже боюсь на собеседования ходить, ходил пару раз в банк на джаву, там когда узнали что я на плюсах пишу просто бля предложили к ним идти с переучиванием на джаву за их счет. Ну в вакансии было с++/java з.п. около 80к, я откликнулся. Теперь у меня психическая травма, даже жопа побаливает чуть-чуть, я сука ведь реально готовился неделю, сидел отладчиком там скомпилированный код изучал, а тут так опетушили, но для себя решил - страуструпа прочту и еще разок попробую. У меня еще 2-3 собеса на этой неделе, так-то я уже чуть чуть подготовлен. Самое смешное повторял приведения типов: явное, неявно, вдумчиво изучал explicit, а тут попался на floa b=100; b-=100; float d = 1/b; Конечно сообразил что скорей всего какая-нибудь константа, но блять не был в этом уверен, пиздец обидно попался, дрючил аж три дня все хитрожопые приведения и так всрался.

Ответы26820

12 июля, 18:51 426 1226785

>>1226781
ну такая же хуйня, я тоже где-то год писал на си, потом еще пришлось с БД ебаться, php, python, bash, linux. Затем год на джаве проебывался, затем на си++ и Qt перешел сразу, с stl не шибко работал. Алгоритмы так, еле-еле душа в теле. Даже не знаешь за что хвататься.

Ответы26789

12 июля, 18:58 427 1226789

>>1226785
Просто прикол в том, что я на С++ уже лет 10 пишу. Ну с перерывами конечно, и то, что я когда то даже знал, я уже забыл как там что и почему, я просто интуитивно умею на нем писать хорошо, это как разговорный язык, ты не знаешь правила что там как да почему, но можешь говорить без ошибок, а когда тебя начинают спрашивать а почему вот ты так сказал, а не по другому, ты уже начинаешь задумываться, а реально ли ты правильно сказал или тебе кажется и все пиздец поехали.
Человека очень легко запутать и вселить в него сомнение, если ты уме будешь что-то уверенно затирать с таким видом как будто это истина, особенно в условиях собеса, где у многих людей мозг работает на 50% от волнения.

У меня была идея перекатиться в яву, ибо я по сервакам в основном и на яве намного больше работы по большим ЗП, но ява тоже древнее говно мамонта с кучей подводных в которые вникать с нуля тоже не кайф.
Жду языка нового поколения в котором все будет ахуенчик и который будут юзать как яву или плюсы везде.

Ответы2679226853

12 июля, 19:03 428 1226792

>>1226789
Rust?

Ответы26796

12 июля, 19:20 429 1226796

>>1226792
Да никто на нем не пишет в серьез. По крайней мере пока еще

12 июля, 19:53 430 1226820

>>1226782
Разве не кидануть должно за деление на ноль?

Ответы26852

12 июля, 20:30 431 1226842

>>1226774
Хуйня же. В первой позиции N вариантов, во второй N-1 и так далее. Всего NN-1...*1 = N! комбинаций. Сидят по возрастанию - одна комбинация, по убыванию тоже. Итого вероятность P(N) = 1/N!. Ну разве есть какя-то наёбка с тем, что стол круглый или есть одногодки.

Ответы2685626861

12 июля, 20:38 432 1226846

>>1226774
Бля я бы даже решать не стал, ибо забыл эту хуйню еще лет 7 назад.
Меня тут спрашивали на собесе по телефону, как найти локальные максимум и минимум функции и как решить систему линейных уравнений, я сказал, что я это забыл 10 лет назад и первый раз такое слышу чтоб на собесе спрашивали.
Это был собес в Align, ну они там че-то с 3д матаном делают, я не по этой части, так решил на бум попробовать.

Ответы2684926857

12 июля, 20:44 433 1226849

>>1226846
>как решить систему линейных уравнений, я сказал, что я это забыл 10 лет назад
ну не пиздец ли

Ответы2685526859

12 июля, 20:47 434 1226852

>>1226820
Нет, там же float. Infinity будет

Ответы26925

12 июля, 20:47 435 1226853

>>1226789
такая же хуйня, братан. Ввязался в стартап, а тут такая хуйня, утро начинается с javascript, а заканчивается RoR, c++ по субботом. Промудохался с этой хуйней несколько лет, но вот видно выше 100 т.р. на си++ везде надо раком прыгать.

12 июля, 20:48 436 1226855

>>1226849
Гаусс, Крамер?

Ответы26858

12 июля, 20:49 437 1226856

>>1226842
Если все люди разного возраста, то будет 2/(n-1)!

Ответы2686326865

12 июля, 20:49 438 1226857

>>1226846
максимум с минимумом это надо производную взять и посмотреть где она 0 равна, вот бля по памяти пишу, остальное я все на хуй забыл, особенно систему уравнений, пиздец, ну мне к 10 языкам еще только си++ с уравнениями не хватало, ебаный свет .... куда податься.

12 июля, 20:50 439 1226858

>>1226855
Жордан-Гаусс ещё, но это грубо говоря тоже самое, что и Гаусс.

12 июля, 20:51 440 1226859

>>1226849
Или вообще численно, нахуй

Ответы26870

12 июля, 20:52 441 1226861

>>1226842
эту же задачу в майл ру дадут на аналитика по дата майнинг, сходу з.п. 170 и остальные задачи говно. Там еще надо sql знать, пистон и иметь пару лет опыта. На си++ мне ее предлагали решить типа для разминочки и з.п. в 100 т.р., идите все на хуй.

Ответы26866

12 июля, 20:55 442 1226863

>>1226856
Берём n=2 и получаем вероятночть 2. А вероятность случайной величины по определению не может быть больше 1. Ты обосрался, следующий.

Ответы26868

12 июля, 20:56 443 1226865

>>1226856
хуй знает какого они возраста, не помню, погугли, это как STL: гномики, уточка, поезд с лампочками, ящики с апельсинами и яблоками и люки круглые. Классика

12 июля, 20:57 444 1226866

>>1226861
>На си++ мне ее предлагали решить типа для разминочки и з.п. в 100 т.р.
Лол. Бля вот я программирую 10 лет на С++, я знаю дохуя алгоритмов, знаю внутренности линукса, знаю как работает процессор, его внутренности и я бы не прошел на эту днищеработу за 100 тр потому что не смог бы решить эту задачу, просто потому что у меня в голове LRU кеш, и я выбрасываю нахуй все не нужное говно из нее чтобы окончательно не пиздануться и не лечь в психушку.
Бля какие же ебанутые люди работают в ИТ, что дают такие задачи.

Ответы2687126872

12 июля, 20:59 445 1226868

>>1226863
Эта хуйня для н строго больше двух, при н = 2, ты как не посадки людей они всегда будут сидеть по возрастанию и убыванию, так что это ты обосрался.

Ответы268692688526929

12 июля, 21:00 446 1226869

>>1226868
9 лет 35 лет 8 лет 37 лет - опровергаю твой пример

Ответы26873

12 июля, 21:01 447 1226870

>>1226859
какой численно, ебанашка. тебя ещё в школе учили:
ax + by = c
dx + ey = f
умножаем первое уравнение на f, а второе на c, потом вычитаем первое из второго. это простое действие, которое кмк невозможно и за 100 лет забыть по сути называется приведение матрицы коэффициентов к диагональной

Ответы26884

12 июля, 21:01 448 1226871

>>1226866
Главное, какой практический смысл от умения решать такие задачи? Его просто нету, если ты не работаешь каким-то программистом-математиком и не решаешь ежедневно задачи по комбинаторике, оптимизацию путей на графе и подобному.

Ответы26877

12 июля, 21:02 449 1226872

>>1226866
а чего же ты не в яндекс собеседуешься? Вот серьезно, какого хуя? У меня друг туда два раза пытался попасть, первые раз готовился месяц, ебали его компилятором, си++, алгоритмами и послали на хуй. Ебли чуть ли не 8 часов. Он закончил вуз поработал пару месяцев и по новой, опять на хуй послали. Хотя у него самый понятный код который я когда-либо видел. Помню даже крис касперский писал, что его в пидорашке на работу никуда брать не хотели, типа он хуево си++ знает.

Ответы26880

12 июля, 21:03 450 1226873

>>1226869
И в чем ты его опровергнул?
Пиши подробнее, хули ты тут набор цифр дал, человека 4, рассадить их всего 6 вариантов, два из них по возрастанию/убыванию.

Ответы26874

12 июля, 21:04 451 1226874

>>1226873
ну ты написал "как не посади людей они будут сидеть по возрастанию-убыванию", я контрпример привел. Если ты не это имел в виду, выражайся ясней.

Ответы26879

12 июля, 21:05 452 1226877

>>1226871
А чем по твоему ещё на с/с++ занимаются? Остальные сферы крепко держат другие языки.

Ответы26883

12 июля, 21:05 453 1226879

>>1226874
Я сказал при н = 2, как ты посадишь 2 людей за круглый стол чтобы они сидели по-разному, гений опровержений?

Ответы26881

12 июля, 21:09 454 1226880

>>1226872
Мне постоянно из яндекса звонят и предлагают и я постоянно шлю их нахуй.
У меня были знакомые оттуда, там так се работка. ЗП ниже среднерыночной, берут только брендом, я же не ебанутый чтоб работать за 100к зато в ЯНДЫКСЕ, когда могу работать в нонейм параше за 200к с перспективой роста до тимлида и каких-нибудь 300-400к, а в яндексе всякие полоумные задроты которые в уме могут скомпилировать буст только за возможность блеснуть своим задротским талантом, то есть за бесплатно, будут тебя вытеснять. Я просто не суперзадрот и делаю это по настроению, и не готов дни напролет тратить время на решения олимпиадных задач, просто чтоб понтануться в яндексе.
Короче, в яндекс можно идти, либо если ты реально ахуевший спец и тебе будут там норм платить ( что тоже не факт ), либо ты просто манька которая будет терпеть унижения в виде крошечной зп за возможность говорить знакомым, что ты работаешь в яндексе.

Ответы26886

12 июля, 21:09 455 1226881

>>1226879
да хуй с ним, я сегодня еще после собеса на работу ходил, уже голова к вечеру как бля книга страуструпа, квадратная, нихуя не соображаю

12 июля, 21:11 456 1226883

>>1226877
Ну я на пример занимаюсь серверами. Не все же на яве и скале писать. Хотя лучше бы на яве писал. Просто так сложилось, что я за каким-то хуем стал на С++ писать и теперь все уже пиздец, дороги назад нету.
Планирую вообще стать каким-нить начальником и не программировать вообще.

Ответы26901

12 июля, 21:12 457 1226884

>>1226870
я предложил все возможные варианты, которые помню, так что иди нахуй

12 июля, 21:16 458 1226885

>>1226868
По твоей формуле если у нас три человека, то p = 2 / (3-1)! = 1. То есть как ты трёх человек ни сажай, они всегда сядут по возрастанию?

Ещё раз для тупых, но с примерами:
Комбинации из 3х человек (всего 3! = 6):
123 132 213 231 312 321
из них по возрастанию только одна. все комбинации равновероятные события, поэтому вероятность того, что все сидят по возрастанию p = 1/6.

Ответы2689026896

12 июля, 21:16 459 1226886

>>1226880
бля, у меня знакомые все давно уже в банках сидят, в сбере например премии годовые по полтора ляма, охуенно так раз и на карту полтора ляма, з.п. хиленкая вроде 100 т.р., но премия охуеть. В основном все либо в нии хуй сосут за копейки и бодрятся фантастикой и игорами, лиюбо давно уже из программирования съебли куда угодно. Всем моим знакомым реально похуй будет на яндекс. Есть еще пара задротов, которые в мэйл ру и еще там биржевые конторы вкатились, но большинство дауншифтнулось.

Ответы26889

12 июля, 21:17 460 1226888

бай зе вей, аноны, кто страуструпа читал, оно того стоит, нужно ли это?

12 июля, 21:21 461 1226889

>>1226886
>премии годовые по полтора ляма, охуенно так раз и на карту полтора ляма, з.п. хиленкая вроде 100 т.р
Ну считай в год ты получаешь так же как и в норм конторе с зп 200к.
Они наверное так сделали чтоб народ реже съебовал с их галеры.
Вообще я понял одно: Что работа на крупной галере, если это не какой-то их новыйх стартап в виде подпроекта - это днина полная, будешь там обезьяной хуярить без перспектив.
У меня друг как-то устроился в меил ру на крестовика, зп была на те дни довольно высокая, но все что он делал там 3 месяца пока не уволился - это составлял какие-то отчеты на хтмле. Спрашивается, и нахуя это говно нужно?

Ответы26893

12 июля, 21:21 462 1226890

>>1226885
Если стол круглый, то все комбинации из трёх человек это одно и тоже, т.к. это просто посадить людей на соседнее место с сохранением порядка, и любой свап двух людей это тоже поворот по факту.

Ответы26894

12 июля, 21:23 463 1226893

>>1226889
ну я сейчас в полугос конторе хуярю за 100к, работаю с откровенным блатным мудачьем, просто бля пиздец каким охуевшим, все проекты работают через жопу. Для меня какой-нибудь банк такая же днища, только сук, можно года за 4 несколько лямов скопить или вобще на хуй съебать с спидорашки, по словам знакомых, все плюсовики уебали уже в гейропу давно.

Ответы26899

12 июля, 21:24 464 1226894

>>1226890
Короче, есть 3 человека, выбираем одного, у него всегда два соседа, соответственно всего два варианта как всех рассадить, но если учитывать, что мы можем смотреть как по часовой стрелке, так и против то это все одна комбинация, 2/(3-1)! = 1

Ответы2689726906

12 июля, 21:25 465 1226896

>>1226885
Вообще-то они там по кругу дрочат сидят. Так что для каждой комбинации можно выбрать первого, от которого все сидят по возрастанию/убыванию. Вероятность соответственно 1

12 июля, 21:25 466 1226897

>>1226894
И тут ты либо смотришь допустим по часовой это возрастание, либо против и это убывание, начинать нужно соотв. в первом случае с самого младшего, в другом с самого старшего.

12 июля, 21:28 467 1226899

>>1226893
Я хотел сначала в китай съебать из-за тян, она туда съебала учителем инглиша, отправил резюме в Espressif или как там они, короче поебень какая-то по микроконтроллерам, но они молчали месяц а потом прислали отказ. Хз звали тоже недавно куда-то в берлин. но я отказался, не хочу в гермашку. Еще в какую-то гейропку звали забыл там какая-то карликовая параша рядом со швейарией, но я тестовое задание не сделал еще, там надо написать external sort, а я че-то заигрался и уже недели 2 извращаюсь, вот думаю сегодня отошлю им. Могу сюда выложить условия и мое решение если кому интересно.

Ответы26900

12 июля, 21:30 468 1226900

>>1226899
лол, меня тоже эта эйчерша доебывает, где там имплантанты для зубов что-то проектировать, еще там 3д проекты хуй знает чего с релокацией в берлин, еще на бауманской конторка есть нет оптикс там вроде в баксах платят 4k, но больно у них схема мутная с ИП

Ответы26904

12 июля, 21:32 469 1226901

>>1226883
Я около 12 лет проработал на плюсах в 4 разных областях, а потом выкатился нахуй. Основная проблема разработки на плюсах это то, что нужно держать в голове кучу всякой низкоуровневой ебанины. К определённому моменту наступает переполнение и ты превращаешься в узкопрофильного специалиста. И всё - пиздец. Так что всем советую готовиться к перекату заранее.

Ответы2690526908

12 июля, 21:35 470 1226904

>>1226900
Импланты зубов это Align, где я провалил собес не ответив как решить систему уравнений. А эта хуйня называется Artec3D вроде, они вроде 3д сканеры делают какие-то я хз уже не помню. На бауманской да, что-то было я не помню, мне тоже тут присылали.
Вот я в артек3д щас задание делаю.

Бля че-то у меня Amplexe не хочет мерить память. Кто помнит как в линуксе можно померить мем юсадж по времени исполнения программы?

Ответы26907

12 июля, 21:38 471 1226905

>>1226901
я только на perl хотел перекатиться, но он почти загнулся, затем еще на RoR хотел перекатиться, но он по слухам уже загибается, сижу теперь на работе питухон дрючу, этот точно долго протянет.

12 июля, 21:38 472 1226906

>>1226894
Ну тогда получается, что по убыванию и по возрастанию это одно и то же. Опять какя-то нестыковочка. Тут либо ты вертишь жопой либо задача поставлена некорректно.

Ответы26916

12 июля, 21:39 473 1226907

>>1226904
бля, я только htop знаю и free, в юниксах не силен

12 июля, 21:39 474 1226908

>>1226901
Бля ну те плюсы были вообще пиздецом, хотя ламповый ANSI C++ с то есть си с классами был годной вещью, я вот такой С++ люблю без этого всякого говна перегруженного. Конечно с С++11 с одной стороны стало проще, а с другой еще больше говна напихали, которое надо помнить.

Ответы26924

12 июля, 21:45 475 1226913

>>1226774
А при чем комбинаторика? Это же теорвер.
Тем более, если сидят за круглым, то вероятность, что по возрастанию = 0.

Ответы2691826919

12 июля, 21:52 476 1226916

>>1226906
Одно и тоже, зависит с кого начинать смотреть и в какую сторону.

12 июля, 21:53 477 1226918

>>1226913
Ну комбинаторика как часть теорвера же, а вообще вероятность события ноль будет, даноль не значит, что оно никогда не произойдёт

Ответы26930

12 июля, 21:53 478 1226919

>>1226913
ну теорвер тут одно название, отношение мощности множества благоприятных исходов к множеству возможных исходов. а вот составить эти множества - комбинаторика. А в чем кстати смысл хантит разрабов аж в берлин? У них там своих разрабов что ли нет? Т.е. в берлине не хотят джунов брать на вырост?

Ответы2692226930

12 июля, 21:59 479 1226920

Аноны, кто собеседует может на крестах, дохуя откликов на вакансии? А то я слышу где-то в кулуарах, что сейчас вкатывальщиков дохуя, хотя откуда?

12 июля, 22:00 480 1226922

>>1226919
>А в чем кстати смысл хантит разрабов аж в берлин? У них там своих разрабов что ли нет?
Голодные иваны готовы работать там за половину обычной зарплаты местного прогера ( что один хуй будет в 2-4 раза больше чем в рашке )

12 июля, 22:09 481 1226924

>>1226908
Да там дело не в самих плюсах. В голову по работе
приходилось впихивать дифгем, матан, теорвер, теорию управления, теорию игр, вычи, дискретку. Вникать во всякие юниксы хуюниксы и распределённые системы, вникать в работу с gpu и алгоритмизацию связанную с визуализацией и рассчётами. Дрючить графические api, системные api, всякие тулкиты, скрипты, блядскую сборку на make/cmake и чем там ещё на новой работе собирают. А ещё c++ никогда не ходит один, поэтому нужно знать C#, Manged C, C, Fortran, XML, Python и неплохо бы java. Ну и всякие boost, qt, mfc и ещё сотни либ, потому что в c++ нихуя нету.

12 июля, 22:11 482 1226925

>>1226852
Херасе. Внатуре. И double тоже такое делает.
А где-то вообще используется float в наши дни?

Ответы26926

12 июля, 22:12 483 1226926

>>1226925
>А где-то вообще используется float в наши дни?
Вся графика крутится вокруг float.

12 июля, 22:13 484 1226929

>>1226868
И при n = 3 тоже. При всех n<=3 задача бессмысленна.

Ответы26970

12 июля, 22:17 485 1226930

>>1226918
А что же еще значит p=0 интересно бы узнать?
Может еще вероятность 1 не значит, что событие произойдет по-любому?
>>1226919
Мощность n!, а вероятность по возрастанию зависит от входных данных. Наборы из {1,2,3} и {2,2,2} дают разную вероятность.

Ответы26973

12 июля, 22:33 486 1226934

Кто может объяснить, о каких атрибутах тут идет речь? https://isocpp.org/files/papers/n4266.html

12 июля, 23:24 487 1226970

>>1226929
Да, согласен.

12 июля, 23:26 488 1226973

>>1226930
Вообще нет, не значит.
Но такое работает только когда исходов бесконечное, например вероятность попасть в любую конкретную точке на любом отрезке 0, но это не значит, что я не могу туда попасть.
Поэтому вероятность со стульями при условии что н стремится к бесконечности тоже 0, т.к. на самом деле эта задача и интересна только при больших н.

Ответы26975

12 июля, 23:33 489 1226975

>>1226973
Я кажется начинаю понимать, к чему ты клонишь. Смотри, например, выбирая между всеми вещественными числами диапазона [2:3] мы имеем вероятность попасть в е ровно нулевую, т. е. она никуда не стремится, у нас уже континуум и 1/континуум это 0.
Так?
Я просто привык к чему-то более реалистичному, т. е. вероятностям (0:1) и даже не помню, было ли в матчасти о бесконечностях.

Ответы26989

13 июля, 00:03 490 1226989

>>1226975
вероятность сложно в универе понять, вот после прочитаешь и все по полочкам разложится, у меня во всяком случае именно так было и матан пошел только после вуза

13 июля, 00:11 491 1226996

388 Кб, 1920x1080306 Кб, 1920x1080

Бля профайлю щас по памяти свою поделку, смотрю какой-то аллокейт странный на 64 метра, думаю какого хуя, смотрю это stringstream выделил столько для 1-й строчки лога, какого же хуя?

Ответы2700227126

13 июля, 00:24 492 1227002

>>1226996
А может это ЛевЪ столько выдал ему? Нельзя доверять ide, написанным на java.

Ответы27005

13 июля, 00:29 493 1227005

>>1227002
Да при чем тут лев, такого даже чисто теоретически не может произойти, не говоря уже о том, что я запускал это под волгриндом отдельно в консоле.

Просто я хуею, у меня лимит памяти 128 метров, тут стринг стрим выхватывает себе 64 метра просто чтоб напечатать 40 символов. Ладно на линуксе это будет чисто виртуальная память, которая реально выделится только сколько ты реально заюзаешь, а на винде как? Там же вроде такого нет. Один хуй, как можно вообще доверять стандартной библиотеке если она с нихуя может просто так алокейтнуть буфер для сирнгстрима размером в половину твоей памяти.

Ответы2701127453

13 июля, 00:52 494 1227011

>>1227005
Мой батя грит, что даже своей жопе доверять нельзя. А батя хуйни не скажет, сам знаешь.

13 июля, 10:55 495 1227125

>>1226649
>таким образом ваше переполнение не переполнение
Лол, вот это шиза. И ведь кто-то этому поверит.

Ответы27199

13 июля, 11:02 496 1227126

>>1226996
По-ходу это выделение памяти для пула динамической памяти. Следующие вызовы new и malloc должны от нее память откусывать, по-идее.

Ответы27145

13 июля, 12:11 497 1227145

>>1227126
В общем, я так и не понял, что это за память, но из-за нее у меня программа не проходила тест в этом артек3д, у них там специальный сайт, куда загружаешь сорцы и он ее тестирует. Она по памяти вылетала, пришлось методом тыка уменьшать используемую для буфера память, чтобы пройти тест.

TAG 13 июля, 14:04 498 1227194

23 Кб, 665x62817 Кб, 513x62515 Кб, 519x638

Икал в гугле, гугл шлет. Анон, думаю ты поможешь. Я изучаю с++. Нашел задание , оно таково, написать программу которая будет создавать динамический двумерный массив, размером введенным с клавиатуры, при этом заполняя весь массив уникальными числами. Я написал, но что-то при работе программы уникальными числами и не пахнет. Есть идеи как реализовать? мой код на пик.
Вот сам код:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
srand(time(NULL));
int row;
int col;
cin>> row;
cin>> col;

int arr =new int* [row];
for (int i = 0; i < row; i++)
{
arr = new int [col];
}

//////////////////////////////заполнение

for (int i = 0; i < row; i++)
{

for (int j = 0; j < col;)
{
bool v = false;
int r = rand() % 16;
arr[j] = r;
for (int n = 0; n < i; n++)
{
for (int n2 = 0; n2 < j; n2++)
{
if (arr[n][n2]==r)
{
v = true;
break;
}

}
}
if (!v)
{
arr[j] = r;
j++;
}

}

}

//////////////////////////////////вывод
for (int i = 0; i < row; i++)
{
cout << endl;
for (int j = 0; j < col; j++)
{
cout << arr[j]<<"\t";
}
}

////////////////////////////////////очистка
for (int i = 0; i <row ; i++)
{
delete[] arr;
}
delete[] arr;

cout << endl;
}

TAG 13 июля, 14:04 498 1227194

23 Кб, 665x62817 Кб, 513x62515 Кб, 519x638

Икал в гугле, гугл шлет. Анон, думаю ты поможешь. Я изучаю с++. Нашел задание , оно таково, написать программу которая будет создавать динамический двумерный массив, размером введенным с клавиатуры, при этом заполняя весь массив уникальными числами. Я написал, но что-то при работе программы уникальными числами и не пахнет. Есть идеи как реализовать? мой код на пик.
Вот сам код:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
srand(time(NULL));
int row;
int col;
cin>> row;
cin>> col;

int arr =new int* [row];
for (int i = 0; i < row; i++)
{
arr = new int [col];
}

//////////////////////////////заполнение

for (int i = 0; i < row; i++)
{

for (int j = 0; j < col;)
{
bool v = false;
int r = rand() % 16;
arr[j] = r;
for (int n = 0; n < i; n++)
{
for (int n2 = 0; n2 < j; n2++)
{
if (arr[n][n2]==r)
{
v = true;
break;
}

}
}
if (!v)
{
arr[j] = r;
j++;
}

}

}

//////////////////////////////////вывод
for (int i = 0; i < row; i++)
{
cout << endl;
for (int j = 0; j < col; j++)
{
cout << arr[j]<<"\t";
}
}

////////////////////////////////////очистка
for (int i = 0; i <row ; i++)
{
delete[] arr;
}
delete[] arr;

cout << endl;
}

Показать весь текст
Ответы27351

13 июля, 14:08 499 1227199

>>1227125
> ВРЁТИИИИ!!!

13 июля, 14:18 500 1227205

fthtrfn

13 июля, 15:14 501 1227251

Пару слов, пару слов: чем отличается std::forward() от std::move()?

Ответы2726027264

13 июля, 15:19 502 1227260

>>1227251
Тем что форвард может и не перемещать если это не нужно и потому требует тип аргумента в качестве шаблонного параметра.

Ответы27304

13 июля, 15:21 503 1227264

>>1227251
Первое для forwarding reference (https://en.cppreference.com/w/cpp/language/reference#Forwarding_references), второе для создания rvalue reference (https://en.cppreference.com/w/cpp/language/reference#Rvalue_references)

13 июля, 15:48 504 1227293

Оцените высер.
Это мьютекс который захватывается по принципу FIFO, то есть кто первый попытался захватить захваченный мьютекс, тот его захватит первым, когда он освободится.

https://ideone.com/hFNdiu

Ответы2730027808

13 июля, 15:52 505 1227300

>>1227293
В смысле, тут не только кто первый, а соблюдается последовательность захватов.
Сначала запилил с std::thread::id но он сука сразу после создания треда не появляется, и возвращает ноль пока тред полностью не стартанул, а мне нужно было заранее последовательность запихнуть из родительского треда, поэтому сделал на интовых айдишниках.

13 июля, 15:57 506 1227304

>>1227260
То есть при std::forward<T>(T& ) будет копирование?
А при std::forward<T>(T&& ) перемещение?

Ответы27338

13 июля, 16:46 507 1227338

>>1227304
std::forward<T>(T&) вернёт T&, (T) вернёт T&&, (T&&) вернёт T&&.
Как произойдёт фактическая передача - зависит от сигнатуры аргументов функции.
Например f(forward<T>(T&)): для void f(T&) передача по ссылке без копирования, для void f(T) копирование

Ответы29048

13 июля, 17:12 508 1227351

>>1227194
В чем проблема забить просто по порядку 1, 2, 3, ...
Если надо потом можно их еще перемешать

13 июля, 19:10 509 1227453

>>1227005
Каким же надо быть дауном, чтобы жалеть 64 МБ, пиздец

Ответы27546

13 июля, 21:02 510 1227546

>>1227453
Пиздуй обратно на свою джаву. И не забудь еще 16 гигов докупить.

13 июля, 22:56 511 1227665

>>1226159
Кажется, как раз для тебя материал: https://www.toptal.com/c-plus-plus#hiring-guide

Ответы2768328447

13 июля, 23:09 512 1227683

>>1227665
>https://www.toptal.com/c-plus-plus#hiring-guide
Лол, там все вопросы на джуна максимум, а тот ищет челиков на ЗП 250к.

Вообще, какие вопросы задавать на собесе зависит от того, что ты хочешь делать с новым челом в тиме, если тебе нужна макака, которая будет фиксить какие-то баги и заниматься рефакторингом, то задавай вопросы по нюансам С++, типа там что будет если вызвать delete к указателю инициализированному через new[], что будет если если при new из конструктора выстрелит эксепшн, че-нить про ооп, типа нахуя нужен виртуальный деструктор и чей деструкто сработает первым если удалить базовый класс, ну такое в общем, чтобы обезьянка была знакома с языком и не наделала ошибок ну и фиксила чужие ошибки.
Если тебе нужен реальный чел, который будет заниматься именно разработкой, то спрашивай про алгоритмы, структуры данных, давай задачи на алгоритмы, давай архитектурные задачи и что в каких случаях применять, спрашивай про многопоточность, операционные системы, как работает память и процессор, какой-нить Data Oriented Design ну в общем спрашивай прикладную теорию, а не то как там из конструктора деструктор вызывать, если даже такой чел налепит косяк, то обезьянка пофиксит за ним.

Ответы27930

66 Кб, 702x978
14 июля, 00:28 513 1227737

>>1226159
Ладно, вот я придумал адекватное тестовое задание.
Если можешь решить без помощи компилятора, то можешь смело идти на сеньора.

Ответы27739277702778527844

14 июля, 00:29 514 1227739

>>1227737
>решить
В смысле, сказать какой будет вывод.

14 июля, 01:37 515 1227770

>>1227737
1?

Ответы2777127774

14 июля, 01:38 516 1227771

>>1227770
Тебя конкретно последний вывод интересует, или из функции foo тоже?

Ответы2777327774

14 июля, 01:40 517 1227773

>>1227771
Короче, конструктор А, потом конструктор С, потом в деструкторе 21 из фу, и сам ~деструктор, а потом 1 в кэтч блоке?

Ответы2777527779

14 июля, 01:41 518 1227774

>>1227770
Что значит 1?

>>1227771
Весь вывод на экран от начала до конца.
Суть в том, что если ты реально шаришь в С++, то для тебя это простенькое задание, нужно лишь отследить последовательность вызовов.

Ответы27777

14 июля, 01:41 519 1227775

>>1227773
А, там ещё функция фу есть в конструктора а, не заметил.

14 июля, 01:41 520 1227777

>>1227774
Я не шарю, я на си пишу вообще.

14 июля, 01:43 521 1227779

>>1227773
Нет, это совсем не правильно.

Ответы27780

14 июля, 01:44 522 1227780

>>1227779
А, там ещё есть поле B , ну ты наворотил конечно.

Ответы27783

14 июля, 01:46 523 1227783

>>1227780
Там не только B.

14 июля, 01:52 524 1227784

Ладно вот вам еще задание.

Как вывести последовательность чисел от 0..N без циклов и условных переходов ( и без switch ).

Ответы2778627787

14 июля, 02:00 525 1227785

>>1227737
Ебать, что это за магия?
Получается полное разрушение объекта с вызовом деструкторов базы и полей невозможно прервать даже исключением?

14 июля, 02:03 526 1227786

>>1227784
А очень просто если N известно статически
https://ideone.com/D4B5q5

Ответы2778927790

14 июля, 02:05 527 1227787

>>1227784
Ебанутое задание конешн

#include <iostream>
#include <vector>

struct A {
static int counter;
A() {std::cout << counter++ << ' '; }
};

int A::counter = 0;

int main() {
int n;
std::cin >> n;
std::vector<A> v(n);
std::cout << std::endl;
return 0;
}

Ответы2778927790

14 июля, 02:07 528 1227789

>>1227786
>#include <bits/stdc++.h>
Проиграл с этого инклюда.

>>1227787

Ну в общем, да, оба решения верные.

14 июля, 02:08 529 1227790

>>1227786
Чет я долго набивал >>1227787. Но нахуя было на ебаных шаблонах воротить?

14 июля, 02:16 530 1227791

Че-то не знаю какие еще интересные задачки есть. Пилите свои.

61 Кб, 765x924
14 июля, 03:25 531 1227795

Ладно вот легенькая задачка по мультитредингу:
Нужно вывести числа от 1..N из двух потоков, есть общая глобальная переменная ( буффер ), один поток producer пишет в нее числа, а другой поток consumer должен их читать и выводить.
Доступна только 1 атомарная функция CAS ( Compare And Swap ), нельзя использовать ни мутексы никакие другие механизмы синхронизации кроме CAS.
Нужно написать недостающий на пикрил thread-safe код.

Ответы2780927968

14 июля, 05:54 532 1227808

>>1227293
>Это мьютекс который захватывается по принципу FIFO, то есть кто первый попытался захватить захваченный мьютекс, тот его захватит первым, когда он освободится.

Не увидел там сортировки очереди по времени. "первый" определяется по другому мьютексу — wait_mtx_. То есть, кто первый захватил wait_mtx_, тот захватит первым mtx_.

Ответы27900

14 июля, 06:46 533 1227809

>>1227795
Как-то так:

int i = 0;
while (!cas(::i, i, j+1)) { i = 0; }

int i = 0;
while ( cas(::i, i, 0)) {}

Ответы2781127905

14 июля, 06:54 534 1227811

>>1227809
Забыл строку во втором

int i = 0;
while ( cas(::i, i, 0)) {}
::i = 0;

Ответы27905

142 Кб, 512x512
14 июля, 08:20 535 1227824

Заебал 1С.
Работал 6 лет во франче. Сейчас второй год в довольно крупной конторе внедряем ERP. Я со стороны конторы из отдела разработки как бы главный по этой теме, зп от статыщ ДС.
Так вот жутко скучно, программирования как такогого нет. Знаю в 1С уже практически всё, изучать прикладной контекст и типовые конфы не интересно. Учет всякого сраного говна на складе, взаиморасчеты. Мне не интенресен результат работы. Да и по ЗП уже потолок.
Хочется вспомнить нормальное программирование. До этого всего когда то изучал С++ и OpenGL. Причём увлёкся именно графикой и сам С++ не особо то и познал. Ну там классы, ооп немного.
Есть ли у кого опыт переката в другой язык? Сколько нужно времени изучать С++ чтобы устроиться хоть на какую-то то вменяемую зп?
Что вообще сейчас пишут программисты С++ и других языков?

14 июля, 10:00 536 1227844

>>1227737
О, прикольно

До строки 49 всё очевидно: создаётся объект С. Для этого сначала вызывается конструктор А в котором вызывается виртуальная функция foo, но вызывается она для объекта A, а не С (то есть выведет A::foo), далее конструктор В, происходит инициализация поля i (или наоборт, сначала i инициализируется, а потом В, тут не могу сказать) и только затем вызывается конструктор С.

Дальше объект С удаляется. Следовательно вызывается его деструктор. Там вызывается виртуальная функция foo. В этот раз она выведет C::i=21. Дальше вывод ~С(). Бросаем исключение. Вот тут уже интересно. Поскольку мы в деструкторе, то чисто в теории его выполнение прерывать нельзя, иначе получим утечку ресурсов на самом деле тут я не уверен, но при бросании исключения все стековые объекты корректно удаляются. Следовательно и в данном случае мы не должны просто выходить из деструктора, прерывая его выполнение. Скорее всего (99%) выполнение поёдет дальше и вызовется деструктор В и затем деструктор А. В деструкторе А вызывается виртуальная функция foo, но объект С уже уничтожен, следовательно вызовется A::foo. Но так как исключение было кинуто, то оно должно пойматься соответствующим catch

ТУТ ОТВЕТ, КТО НЕ РЕШАЛ, НЕ СМОТРИТЕ!!

Короче, итоговый вывод будет:
A()
A::foo()
B()
C()
C::i=21
~C()
~B()
A::foo()
~A()
j=1

Я прав (интересно большее даже не правильный ли вывод, а правильно ли я всё объяснил)?

Ответы278452845229946

14 июля, 10:01 537 1227845

>>1227844
пиздос сколько опечаток и грамматических ошибок получилось

14 июля, 12:30 538 1227900

>>1227808
Не понял что ты имел ввиду. Нахуя там сортировка по времени?
Система там такая:
Если очередь пустая и мутекс захватывается через try_lock то выходим и мутекс наш.
Элс:
Добавляем айди треда в очередь ( если не стоит опция скипнуть добавку в очередь ), и засыпаем на условной переменной пока очередь не дойдет до нас, все это под wait_mtx_, далее, убираем наш айди из очереди, лочим основной мутекс и выходим.

Когда анлочим этот мутекс, нотиваем все треды ожидающие в условной переменной, чтоб они проснулись и проверили очередность.

Метод enqueue это такой костыль который мне нужен был, чтобы из этого мютекса сделать что-то типа семафора, т.к. мне нужно было заранее распределить очередность потоков.

14 июля, 12:37 539 1227905

>>1227809
>>1227811
У тебя там ошибка(и). Пересмотри свой код внимательней. Я хз вообще как ты это написал, но i это глобальная переменная, нахуя ты пишешь int i = 0?

Ответы2804028053

14 июля, 13:36 540 1227930

>>1227683
Ну тогда что-то из http://www.quizful.net/test/cpp_expert наверное. Он ведь жаловался, что на простые вопросы ответить не могут. Я и доставил что-то в меру простое, чем тестируют.

А по поводу того, что ты написал, так тут странная штука. Я в смятении. Потому, что все тонкости языка и подлые нюансы типа, чей деструктор, где конструктор и как форвад делает передачу, — это мне не в кайф, дается трудно и косячу. А вот учить структуры данных, всякие модные деревья самотасующиеся и там паттерны проектирования — напротив интересно. Что делать?

Ответы28292

14 июля, 13:40 541 1227933

Что такое va_list и с чем его едят? Впервые вижу, хотя думал, что уже всё из C++ хотя бы по названию узнаю.
Это что-то устаревшее? Его используют?

Ответы27938

14 июля, 13:46 542 1227938

>>1227933
Это из Си.

14 июля, 14:53 543 1227968

>>1227795
Посоветуйте литературы для вкатывания в такое (с азов мультитрединга).

14 июля, 16:14 544 1228040

>>1227905
>У тебя там ошибка(и).
Конкретней.

> Пересмотри свой код внимательней.
Позже.

> Я хз вообще как ты это написал, но i это глобальная переменная, нахуя ты пишешь int i = 0?
Может не у меня ошибки, а ты не смог разобраться?

14 июля, 16:29 545 1228053

>>1227905
>У тебя там ошибка(и).
Ладно. Исправляю второй кусок:

int i = 0;
while ( cas(::i, i, 0)) {}
if (i == -1) break;
::i = 0;

Ответы28287

14 июля, 21:08 546 1228287

>>1228053
Вы нам не подходите.

14 июля, 21:12 547 1228292

>>1227930
Перекатываться в архитекторы, получать 300к+ и потешаться над красноглазиками и стандартоёбами. Да и просто быть выше всего этого низкоуровневого говна для работяг.

Ответы28442

15 июля, 01:34 548 1228442

>>1228292
Я так понимаю, что быть выше нельзя с порога. Надо сначала хотя бы джуном каким-то стать, не? Скажи, какую математику мне понадобится знать, чтобы вырасти в архитектора однажды?

15 июля, 01:56 549 1228447

>>1227665
Я сбросил эту ссылку. Сам тогда только начал читать. Сейчас дочитал. Так что прошу прощения, это не то, думал, что они говорят „true C++ expert“ без сарказма. Но там вопросы для отсеивания разве что читателей методички C++ за полчаса, элементарные, короче говоря.

15 июля, 02:05 550 1228452

>>1227844
Это ответ или ты сам спрашиваешь?

Мне показалось, что как минимум B тут никак не должен подавать голос в поток, ведь его не инициализируют. А что деструктор отрабатывает до конца, игнорируя брошенные исключения — странно, откуда инфа?

Короче, ответ за спойлером это гипотеза или вбил-проверил?

Ответы28487

15 июля, 08:41 551 1228487

>>1228452
> Короче, ответ за спойлером это гипотеза или вбил-проверил?
Это моя гипотеза (перепечатывать лень)

В инициализируется конструктором по умолчанию

> А что деструктор отрабатывает до конца, игнорируя брошенные исключения — странно, откуда инфа?
Я хз, чисто логические размышления и мне кажется, что как раз странно было бы, если бы мы вышли при бросании исключения. Просто не логично не выполнять деструктор до конца, ведь часть ресурсов может утечь, а по-другому освободить ресурсы не получится

Анон, который это придумал, ты где??
Прав я или не прав?

15 июля, 19:19 552 1228822

ААААСУКАБЛЯДБ!!!! ШАблончики пошли блядь!
Эта метафизика с какой версии появилась? Или сам трупстраус эту фичу ещё в первой части запилил?

Ответы28965

15 июля, 19:58 553 1228829

Котики, а посоветуйте какой-нибудь софт, который граф вызовов построить может?

Вот есть у меня солюшен от наших контрагентов, c парой десятков проектов на С++ в MS Visual Studio.

Я хочу, например, понять, из каких методов вызывается такой-то метод. Да, я могу поюзать Visual Assist и сказать Find References, но таких мест многовато, и хотелось бы это поиметь в графическом виде. Не юзал ли кто чего подобного?

Ответы28843

15 июля, 20:23 554 1228843

>>1228829
Профайлеры могут строить графы вызовов. В студии есть встроенный профилировщик. Есть платные годные варианты типа Intel VTune или AQtime (вроде можно скачать триалку на 30 дней, но это не точно). Если тебе неподвендой надо, то тогда Valgrind.

15 июля, 23:22 555 1228965

>>1228822
Могу предположить, что они уже старше тебя

15 июля, 23:27 556 1228966

Так ебать, анонче, выручайте.
Ни у кого из вас нет написанного блекджека? Чтоб попроще, и, желательно, чтобы на repl'е запускался.
Я знаю, что я охуел.
Поставлю свечку за весь тредик, если скините.

16 июля, 08:16 557 1229048

>>1227338
Благодарю

16 июля, 11:50 558 1229137

Аллё гараж! Трэд перекатывать кто нибудь будет?

16 июля, 21:41 559 1229477

Анон, помоги советом.
Клин: есть сеть между windows и linux машинами.
Нужно каждые 0.03 секунды передавать пакеты с первой на вторую.
Первая генерирует данные, вторая принимает их и использует.
Вопрос: куда копать? Какие лайтовые либы существуют или что почитать для совершения подобного действа?

Ответы29486

16 июля, 21:52 560 1229486

>>1229477
Что за пакеты? Можно сделать какой-нибудь RPC на сокетах. Или взять готовый, например Apache Thrift.

Ответы29494

16 июля, 22:11 561 1229494

>>1229486
Светомузыка у меня так реализована. Слушаю песню на пекарне с Windows и в реалтайме генерирую FFT результат частот. Если частота достаточна высокая, то нужно светить. Так получилось, что свечу я через Raspberry pi GPIO пины. Накодил для теста такую программу, которая бы это все производила локально на Raspberry pi, все работает. Теперь хочу считать на Windows, а малина пусть только светит когда нужно, она и так нагружена.

16 июля, 23:54 562 1229560

Герб Саттер советует всегда писать auto. Если хочешь явно контролировать тип, ну пиши auto variable_name = type{value}; но auto будь добр ставить всегда. А вы как делаете?

Ответы2962729632

17 июля, 02:59 563 1229627

>>1229560
auto везде, где контекст либо понятен, либо не важен.
В остальных случаях тип руками. Другое дело, что таких случаев далеко не так много.

17 июля, 04:08 564 1229632

>>1229560
auto там где трёхэтажные типы, всякие итераторы и лямбды. Простые типы пишу руками, а то, что предлагает этот твой Сраттер, выглядит как пидорство. Фактически там, где каркас, гуй, ввод-вывод auto заходит хорошо, а там где всякий матан и бизнес-логика получается помойка.

17 июля, 16:54 565 1229946

>>1227844
Бля, ну кто-нибудь ответьте, правильно или нет?

Ответы29977

17 июля, 17:31 566 1229977

>>1229946
Задачка была неинтересная и всем насрать. За правильный вывод спроси у компилятора.

Ответы29996

17 июля, 18:08 567 1229996

>>1229977
>Я макакен, который не смог решить, поэтому все что мне остается - это врубить отрицание и называть задачу говном.
Ясно.

Ответы30002

17 июля, 18:25 568 1230000

Прочитал Совершенный код. Понял смысл бытия и остального. Что еще есть почитать такого-же фундаментального по программированию в общем и про ООП в частности?

Ответы30236

17 июля, 18:32 569 1230002

>>1229996
Нет, ну правда, какой интерес может быть в задачке, которая проверяет глубины знаний стандарта? Тут два с половиной анона может и занимаются разработкой компиляторов, но большинство всё равно прикладники и юзают плюсы как инстумент, а не вещь в себе.

Ответы30007

17 июля, 18:43 570 1230007

>>1230002
Я же говорил макакен.
С таким подходом, ты дальше laba1.cpp не пройдешь.

Ответы3001030096

17 июля, 18:47 571 1230010

>>1230007
По статистике те, кто так отвечают сами не делали никаких реальных проектов.
мимокрокодил

Ответы30011

17 июля, 18:51 572 1230011

>>1230010
Статистика из твоего манямирка?

Сходи на собес что ли в какую-нибудь более менее приличную контору, типа яндекса.

Ответы30013

17 июля, 18:52 573 1230013

>>1230011
Да я работаю в американской компании, только пишу не на крестах.
алсо был на собесах в Яндексе и сбербанка, на мейлру не захотел идти, в итоге по зп, да и условиям выбрал текущую работу

17 июля, 20:34 574 1230096

>>1230007
Если тебе скучно, то вот ещё простенькая задачка на стандарт:

int f(int);
double f(double);
size_t size = sizeof(f(0));
Чему будет равен size?

Одна из тестовых задачек на мидла в контору с 3d сканерами и 3d печатью:

На плоскости задано облако точек с координатами x, y. Среди всех пар точек найти пару с миниамльным расстоянием между ними. Количество точек не превышает 1e6. Их координаты лежат в диапазоне [-1е9, 1е9]. Качество выполнения задания определяется скоростью работы метода mindist.
struct point {int m_x, m_y};
float mindist(const std::vector<point>& cloud) {/ solution /};

баян-бабаян:
написать программу, выводящую свой текст, без использования ввода-вывода (файлового или с клавиатуры)

задачки для джунов:
1. для int num; инвертировать бит в позиции n.
2. вывести двоичное представление целого числа со знаком
3. есть точка struct point{int m_x, m_y;}, написать метод, поворачивающий эту точку вокруг начала координат на 90 градусов против часовой стрелки.

Ответы30114

17 июля, 20:51 575 1230114

>>1230096
>
>int f(int);
>double f(double);
>size_t size = sizeof(f(0));
>Чему будет равен size?
Это ясно что ошибка компиляции

>Одна из тестовых задачек на мидла в контору с 3d сканерами и 3d печатью:

На плоскости задано облако точек с координатами x, y. Среди всех пар точек найти пару с миниамльным расстоянием между ними. Количество точек не превышает 1e6. Их координаты лежат в диапазоне [-1е9, 1е9]. Качество выполнения задания определяется скоростью работы метода mindist.
struct point {int m_x, m_y};
float mindist(const std::vector<point>& cloud) {/ solution /};
Это куда? Artec3D что ли?
Хз, лень думать. Думаю через какие-нить BSP или Kd деревья, последний раз делал что-то с 3д матаном лет 10 назад. Если по тупому можно через O(n^2) тупым перебором.

>>1230096
>написать программу, выводящую свой текст, без использования ввода-вывода (файлового или с клавиатуры)
Не знаю.

>1. для int num; инвертировать бит в позиции n.
void foo(int& i, int n)
{
int j = 1 << n;
i ^= j;
}

>2. вывести двоичное представление целого числа со знаком
лень

>3. есть точка struct point{int m_x, m_y;}, написать метод, поворачивающий эту точку вокруг начала координат на 90 градусов против часовой стрелки.
типа через полярные координаты, тоже лень писать.

Короче твои задачи очень специфическое говно по 3д матану, такое большинству людей нахуй не нужно, если они не работают с каким-нить 3д матаном.

17 июля, 20:51 575 1230114

>>1230096
>
>int f(int);
>double f(double);
>size_t size = sizeof(f(0));
>Чему будет равен size?
Это ясно что ошибка компиляции

>Одна из тестовых задачек на мидла в контору с 3d сканерами и 3d печатью:

На плоскости задано облако точек с координатами x, y. Среди всех пар точек найти пару с миниамльным расстоянием между ними. Количество точек не превышает 1e6. Их координаты лежат в диапазоне [-1е9, 1е9]. Качество выполнения задания определяется скоростью работы метода mindist.
struct point {int m_x, m_y};
float mindist(const std::vector<point>& cloud) {/ solution /};
Это куда? Artec3D что ли?
Хз, лень думать. Думаю через какие-нить BSP или Kd деревья, последний раз делал что-то с 3д матаном лет 10 назад. Если по тупому можно через O(n^2) тупым перебором.

>>1230096
>написать программу, выводящую свой текст, без использования ввода-вывода (файлового или с клавиатуры)
Не знаю.

>1. для int num; инвертировать бит в позиции n.
void foo(int& i, int n)
{
int j = 1 << n;
i ^= j;
}

>2. вывести двоичное представление целого числа со знаком
лень

>3. есть точка struct point{int m_x, m_y;}, написать метод, поворачивающий эту точку вокруг начала координат на 90 градусов против часовой стрелки.
типа через полярные координаты, тоже лень писать.

Короче твои задачи очень специфическое говно по 3д матану, такое большинству людей нахуй не нужно, если они не работают с каким-нить 3д матаном.

Показать весь текст
Ответы30146

17 июля, 21:49 576 1230146

>>1230114
>Это ясно что ошибка компиляции
Почему же, всё скомпилируется. Можешь сам проверить.

>Это куда? Artec3D что ли?
Нет, но это задача, типичная для подобных контор. Да и для контор, которые занимаются обработкой видеоизображений.

>Хз, лень думать. Думаю через какие-нить BSP или Kd деревья, последний раз делал что-то с 3д матаном лет 10 назад. Если по тупому можно через O(n^2) тупым перебором.

Ну по-тупому это только на джуна.

>
>>1. для int num; инвертировать бит в позиции n.
>void foo(int& i, int n)
>{
>int j = 1 << n;
>i ^= j;
>}
>
>>2. вывести двоичное представление целого числа со знаком
>лень

Для обеих задач есть элементарное решение в 2-3 строчки (если ты хорошо знаешь стандарт, конечно).

>>3. есть точка struct point{int m_x, m_y;}, написать метод, поворачивающий эту точку вокруг начала координат на 90 градусов против часовой стрелки.
>типа через полярные координаты, тоже лень писать.

нет. решается в одну строчку.

>Короче твои задачи очень специфическое говно по 3д матану, такое большинству людей нахуй не нужно, если они не работают с каким-нить 3д матаном.

А с чем работает большинство людей? Разве 3d печать и машинное зрение это говно/скучно? В отличие от красноглазиков ты можешь дома пользоваться своим по, что доставляет.

17 июля, 21:49 576 1230146

>>1230114
>Это ясно что ошибка компиляции
Почему же, всё скомпилируется. Можешь сам проверить.

>Это куда? Artec3D что ли?
Нет, но это задача, типичная для подобных контор. Да и для контор, которые занимаются обработкой видеоизображений.

>Хз, лень думать. Думаю через какие-нить BSP или Kd деревья, последний раз делал что-то с 3д матаном лет 10 назад. Если по тупому можно через O(n^2) тупым перебором.

Ну по-тупому это только на джуна.

>
>>1. для int num; инвертировать бит в позиции n.
>void foo(int& i, int n)
>{
>int j = 1 << n;
>i ^= j;
>}
>
>>2. вывести двоичное представление целого числа со знаком
>лень

Для обеих задач есть элементарное решение в 2-3 строчки (если ты хорошо знаешь стандарт, конечно).

>>3. есть точка struct point{int m_x, m_y;}, написать метод, поворачивающий эту точку вокруг начала координат на 90 градусов против часовой стрелки.
>типа через полярные координаты, тоже лень писать.

нет. решается в одну строчку.

>Короче твои задачи очень специфическое говно по 3д матану, такое большинству людей нахуй не нужно, если они не работают с каким-нить 3д матаном.

А с чем работает большинство людей? Разве 3d печать и машинное зрение это говно/скучно? В отличие от красноглазиков ты можешь дома пользоваться своим по, что доставляет.

Показать весь текст

18 июля, 02:21 577 1230236

>>1230000
Чистый код и паттернов наебни

18 июля, 11:27 578 1230308

Есть вопрос по поводу приведения типов
https://pastebin.com/FwGFzZHD
Правильно ли я привожу их и нужно ли использовать static_cast?

Ответы3038230507

18 июля, 14:33 579 1230382

>>1230308
То что написано работать будет. static_cast тут нельзя использовать, только reinterpret_cast. За c-style cast тебе мозг выебут ещё до того, как ты успеешь его написать (мол снимает константность, может сдвинуть указатель не туда при множественном наследовании и проч.).

18 июля, 17:35 580 1230507

>>1230308
Какая разница, всё равно UB

18 июля, 18:11 581 1230529

Что посоветуете читать о сетевом программировании в C++?
Вообще не в курсах, с какой стороны подступиться.

18 июля, 18:14 582 1230530

>>1230522 (OP)
>>1230522 (OP)
>>1230522 (OP)
>>1230522 (OP)
>>1230522 (OP)
>>1230522 (OP)
>>1230522 (OP)
>>1230522 (OP)
>>1230522 (OP)
>>1230522 (OP)

19 июля, 01:29 583 1230750

Аноны, можете какие библы посоветовать для работы с изображениями? А если точнее, хочу захватить часть изображения указав фрагмент, и отправить его в отдельную переменную.

22 июля, 13:40 584 1232816

>>1221991
Этот >>1222213 фантазирует. Из веба перекатиться в прикладной и системный софт в чем-то тяжелее чем с нуля. По словам знакомых это потому, что требования разные, а перекатываться жутко не хочется, потому что уже есть опыт в вебе.
Но учти, что вакансий в вебе реально дохуя, и если тебе нужно в первую очередь вкатиться, и сделать это побыстрее (ну скажем мамка не кормит), то иди в веб, но о плюсиках лучше забудь насовсем. Да и в вебе денег на старте больше.
Мимо плюсовик.

918 Кб, 745x874
23 июля, 23:18 585 1233832

Господа крестоносцы, у меня к вам вопрос. Нахуя использовать массивы в с++, когда есть божественные вектора?

Ответы3390641209

24 июля, 03:18 586 1233906

>>1233832
При попытки добавить к массиву элемент для которого не выделенна память появится ошибка. Если вам нужно, чтобы в массиве было не больше 24 элементов, то это благо, так как позволит обнаружить ошибку.

При попытки добавить элемнт к вектору ничего не будет, потому что вектор автоматически выделит память для нового элемента. Хотя не знаю, может можно и ограничиывать память для вектора, я таким никогда не занимался.

В принципе это единственный "плюс" и то в каком-то конкретном случае. А что скажут любителя стандарта?

Ответы34004

24 июля, 09:41 587 1234004

>>1233906
Если тебе нужен статический размер можно юзать std::array.

Ответы34203

24 июля, 16:16 588 1234203

>>1234004
Ну, тогда хз зачем они нужны.

Ответы34417

24 июля, 23:23 589 1234417

>>1234203
Совместимость с С

Ответы34475

25 июля, 03:20 590 1234475

>>1234417
А где-то еще чистый C применяется? Я думал, что уже все части кода написаный на нем были инкапсулированы и их держат как фантастических тварей в закрытой коробке, открывая только когда, что-то ломается.

Ответы3448234550

25 июля, 03:53 591 1234482

>>1234475
Все ОС, драйвера

Ответы34685

25 июля, 09:56 592 1234550

>>1234475
Почти все, что работает с железом пишется на си.иногда приходится заглядывать в асм, но это можно сказать редкие случаи

Ответы34685

25 июля, 14:39 593 1234685

>>1234482
>>1234550
Почему так не применяют С++? Проигрыш в скорости критичен или есть не столь очевидная причина?

Ответы346923469535574

25 июля, 14:50 594 1234692

>>1234685
Да, дело именно в скорости, есть места, где кресты догоняют чистую сишечку, где-то видел даже обгоняют, но оси и дрова все такки пишутся на сиэто касается линукса, наша команда винды что-то делает и на крестах, но я не знаю, что именно

Ответы34696

25 июля, 14:53 595 1234695

>>1234685
Либо скорость, либо программа на крестах тупо не влезет в память микроконтроллера

Ответы34696

25 июля, 15:05 596 1234696

>>1234692
>>1234695
Мдя.. Печально это. Значит ООП в ОСях, дровах и микроконтроллерах отсутствует.

Ответы3469734698

25 июля, 15:07 597 1234697

>>1234696
И нахер оно тебе вперлось? Это всего лишь инструмент

Ответы34704

25 июля, 15:08 598 1234698

>>1234696
Ну там есть подобие ООП, структуры, например, в них можно указатели на функцию запихнуть, вот тебе и практически метод класса.
Наследования нет, конечно, да и хер с ним, когда работаешь на низком уровне тебе на самом деле ООП в полном своём функционала и не нужно, в принципе.

Ответы34704

25 июля, 15:14 599 1234704

>>1234697
Нахер удобный инструмент для снижения сложности проекта?
Ну, наверное, что бы снизить сложность проекта.
>>1234698
Спасибо, понял. К железу просто никогда не прикасался, максимум из Raspberry делал синхронизатор времени для одного внешнего устройства.

Ответы34708

25 июля, 15:28 600 1234708

>>1234704
> Кресты
> Удобный
Выбери что-то одно

26 июля, 15:22 601 1235426

Почему в ветке case: нельзя локальные переменные определять в scope switch? Какого хуя?

Ответы354283725337257

26 июля, 15:24 602 1235428

>>1235426
А зачем?
рассказывай зачем тебе в кейсе локальная переменная

Ответы35455

26 июля, 15:48 603 1235455

>>1235428
да я объект создаю, а потом его через конструктор пакирования типа
case SOME_SHIT:
Packet packet = BigFuckingMessage.getNexPacket();
commander->sendPacket(packet);

Ответы35457

26 июля, 15:54 604 1235457

>>1235455
Юзкейс так себе, лучше выделяй память не на стеке, тогда все будет работать.

Ответы35674

26 июля, 18:32 605 1235574

>>1234685
С++ применяют и в драйверах, и в эмбеде.
meetingembed гугли, нарпример

26 июля, 19:47 606 1235674

>>1235457
Ну х.з.Я ТАК ВИЖУ, меня больше механизм интересует, почему нельзя.

29 июля, 15:34 607 1237253

>>1235426
Потому что у switch case не совсем очевидная семантика. Читай http://blog.robertelder.org/switch-statements-statement-expressions/

29 июля, 15:42 608 1237257

>>1235426
А если ещё один дополнительный скоуп {} создать?

Ответы37289

29 июля, 16:54 609 1237289

>>1237257
Вот это кстати заебись, тогда всё можно.

5 авг, 13:59 610 1241209

>>1233832
Вектора - привносят огромный оверхед в угоду удобства использования, размещают данные на куче, что тоже достаточно дорого.
Массивы используются, когда размер не меняется, есть возможность разместить данные на стэке. Замена вектора на массив может дать существенный прирост в производительности отдельного куска кода.
Стоит отметить, что стандартный вектор разрабатывается для общего случая, а значит, можно увеличить производительность, переписав вектор под свои нужды

Ksyrx 19 авг, 17:27 611 1249220

C++ говно

Тред утонул или удален.
Это копия, сохраненная 2 сентября 2018 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки

/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.gq, m2ch.cf, m2ch.fapp.in, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion