Size: a a a

2021 February 20

s

std::slavik in supapro.cxx
но это не то чтобы бест практис
но много где встречается
в основном в "си с классами" коде
источник

LA

Liber Azerate in supapro.cxx
Demian Clyde
А перед каждым загоном огромных массивов, то почему мы не можем очищать его собственно?
Или это дороже по-памяти, чем использование ссылок и указателей и т.д
Аллокации и деаллокации – гораздо дороже
источник

DC

Demian Clyde in supapro.cxx
Liber Azerate
Аллокации и деаллокации – гораздо дороже
По-факту он вызывает по аллокации на каждый пушбэк и так.

А что насчёт emplace_back() не выйдет ли это дешевле?
источник

LA

Liber Azerate in supapro.cxx
Demian Clyde
По-факту он вызывает по аллокации на каждый пушбэк и так.

А что насчёт emplace_back() не выйдет ли это дешевле?
Не на каждый. Дешевле сделать .reserve(), у тебя же размер известен
источник

EP

Egor Pugin in supapro.cxx
Demian Clyde
По-факту он вызывает по аллокации на каждый пушбэк и так.

А что насчёт emplace_back() не выйдет ли это дешевле?
в call() не надо ничего передавать, создай вектор внутри, сделай резерв после считывания количества, и возвращай по значению
источник

s

std::slavik in supapro.cxx
Demian Clyde
Альтернативы?
такой вопрос - если функция возвращает вектор, зачем ей на вход пустой?
источник

LA

Liber Azerate in supapro.cxx
Liber Azerate
С тем же успехом она может не принимать ничего и просто возвращать вектор
Кек
источник

s

std::slavik in supapro.cxx
почему бы ей не создать его самостоятельно и не вернуть?
источник

DC

Demian Clyde in supapro.cxx
У меня таска в целом звучит, как

На вход мы даём
1 - кол-во векторов
2 - кол-во вызовов call()
3 - call()
4 - call()
5 - элемент 1-го вектора
6 - элемент 2-го вектора

Вывод :
5-ый шаг
6-ой шаг
источник

s

std::slavik in supapro.cxx
опять ты на шаг впереди
источник

LA

Liber Azerate in supapro.cxx
std::slavik
опять ты на шаг впереди
Я на три шага впереди :) Если посчитать, что сначала ты порекомендовал мой второй совет, потом первый, потом ещё рекомендовали сделать reserve... После меня :)
источник

s

std::slavik in supapro.cxx
Liber Azerate
Я на три шага впереди :) Если посчитать, что сначала ты порекомендовал мой второй совет, потом первый, потом ещё рекомендовали сделать reserve... После меня :)
я наводящие вопросы задаю)
источник

s

std::slavik in supapro.cxx
чтобы человек сам дошел
источник

LA

Liber Azerate in supapro.cxx
std::slavik
чтобы человек сам дошел
Ага, тоже так иногда делаю
источник

s

std::slavik in supapro.cxx
Demian Clyde
У меня таска в целом звучит, как

На вход мы даём
1 - кол-во векторов
2 - кол-во вызовов call()
3 - call()
4 - call()
5 - элемент 1-го вектора
6 - элемент 2-го вектора

Вывод :
5-ый шаг
6-ой шаг
выглядит как ТЗ, осталось реализовать
источник

s

std::slavik in supapro.cxx
и эстимейты в джире проставить
источник

s

std::slavik in supapro.cxx
короче - если нужно чтобы извне контролировалось куда именно будет функция выдавать данные - например memcpy какаянибудь - тогда на вход ей нужно подавать ссылку/указатель на destination и возвращать код ошибки/ничего не возвращать, если не нужно чтобы извне контролировался выходной контейнер - тогда его можно создать внутри функции вызываемой и вернуть просто - тогда функция ссылок/указателей на контейнер не принимает, но возвращает уже контейнер. Если нет весомых причин использовать первый вариант - лучше по дефолту использовать второй, для вызова функции дополнительных телодвижений и условий не требуется, она сама все внутри сделает и вернет результат
источник

s

std::slavik in supapro.cxx
Demian Clyde
А перед каждым загоном огромных массивов, то почему мы не можем очищать его собственно?
Или это дороже по-памяти, чем использование ссылок и указателей и т.д
так зачем нам тогда загонять огромные массивы, если мы перед этим их очищаем?
источник

КП

Котеечко Пухнастиньк... in supapro.cxx
Anatoly Shirokov
если видишь код без ифов - это примеры, если видишь кучу ифов и т.п. - это прод :)
ггггг
источник

КП

Котеечко Пухнастиньк... in supapro.cxx
жизненно
источник