Vladislav
ok, да
Александр
v.insert(v.end(), other.begin(), other.end())
Berkus
Berkus
v.reserve(10); // alloc
v.insert(v.end(), {10 items}); // init WITHOUT REALLOC
Vladislav
insert - да, уже понял
Vladislav
ты же emplace_back предлагал)
Berkus
ну for (auto v : {10 items}) v.emplace_back(item); // INIT WITHOUT REALLOC
Berkus
Vladislav
спасибо, капитан
Berkus
тогда я не понял что про size
Anatoly
надеюсь компилятор осилит не прибавлять к size
Berkus
и emplace и insert меняют size
Anatoly
что это за надежда?
Berkus
прибавляют к нему если коротко
Ignat
господи, вы что, неиронично инкременты экономите?
Александр
Владислав говорит, что хочет один раз увидеть size += delta вместо size++ в цикле
Anatoly
@isenbaev reserve только аллоцирует память, а далее на каждой итерации emplace_back конструиует объект и инкрементирует size
Ignat
ну это уже что-то из серии «хочется странного»
Vladislav
Anatoly
при условии, что это random-access-iterator
Vladislav
я кусками обрабатываю и пишу, поэтому не подойдет в моем случае
Klaus
Я вот недавно хотел выделить массив из порядка тысячи объектов, у которых нет конструктора по умолчанию, и проинициализировать их в цикле, вычисляя их по-хитрому исходя из предыдущих построенных.
Klaus
Похоже, сколько-нибудь адекватный способ этого добиться - это vector и push_back в цикле, но все равно лишние операции делаются. Потому что мы сначала строим новый объект, и только потом размещаем его копию в векторе.
Vladislav
для этого и придумали emplace_back
Ioann_
// раньше и без него такое проворачивалось, но естессно, самописными контейнерами
Berkus
Aidar
Aidar
Перемещение
Sergey
Здравствуйте, коллеги, не подскажете где можно почитать информацию по написанию ботов на c++. В частности, интересует библиотека tgbot
Anonymous
Anonymous
Мне самому страшно.
Sergey
Ты этот tgbot тронешь — он развалится.
тронул, пожалел сильно. Сделал для начала парсер преобразования арифметического выражения в дерево(картинку). Замучился искать проблему работы программы через раз
Sergey
python это тема
Anonymous
На текущий момент крайне не советую писать ботов на C++.
Square
Pavel
Anonymous
Почему?
Нет хорошей либы.
Vladislav
так надо запилить
Pavel
Нет хорошей либы.
Насколько я понимаю, там задачи либы сводятся только правильно json сформировать и и правильно распарсить
Anonymous
Dmitry
подскажите, clang+libcxx дольше собирает чем clang+libstd++?
Dmitry
не пойму, что за сюрприз такой. то ли из-за libcxx дольше стало, то ли из-за ядра с фиксом meltdown/spectre
Ignat
казалось бы, какая разница, какую либу прилинковать
Pavel
Anonymous
А их парсить надо.
Ignat
справедливо
Pavel
Были случаи что время компиляции при смене stl становилось х2
Dmitry
тут не x2 а все x10 будут
Alexey
Хм. А сюда нельзя постить ссылки на cppcon доклады?
Alexey
Ну коль нельзя, спрошу так, без контекста: у кого-нибудь есть пример показывающий разницу в производительности в случае если мы попадаем в cacheline и когда не попадаем?
Alexey
У меня не получается воспроизвести то. что вещал автора на "CppCon 2014: Mike Acton "Data-Oriented Design and C++"
🦥Alex Fails
Mike
Mike
В 2008м это роляло сильно и 1025 умножались быстрее
Anonymous
Думаю сегодня надо только побольше матрицы взять.
Mike
Ну короч степень двойки против степень двойки +1
Mike
Там в свое время вся матрица мапилась на две линейки кеша
Vladislav
Mike
Так полому что они в одни кеш линейки влетали и 1/8 кеша юзалась условно
Mike
Точно не помню 10лет назад было
Alexey
Можно
Мне телеграм не давал копипастить сюда даже текст. И ссылки тоже. Говорил, что админы запретили мне постить медию сюда.
Square
Ну у нас батлер всем по дефолту отрезает это - спама меньше :)
Anonymous
Alexey
когда даже текст нельзя копипастить - это очень сурово
Square
Alexey
Я не мог просто текст скопипастить. То есть точно тот же текст, который я копирую из поля ввода телеграмма.
Alexey
Может это телега дурила конечно. Может это особенность мак-версии. Я хз.
Anonymous
Здравствуйте, можно небольшое объявление о вакансии скинуть? Это не противоречит правилам?
Vladislav
Anonymous
Спасибо
Alexander