170 похожих чатов

Https://Godbolt.Org/Z/S4d3sKr8h Коллеги, насколько приемлемо использовать такую конструкцию, если в листе будет

+-1000 сущностей unit_s?

44 ответов

9 просмотров

Да std::list редко когда приемлемо использовать

Danya🔥
Да std::list редко когда приемлемо использовать

Прикольненько. а что лучше вместо него? а то я у себя сейчас как раз вектор на лист поменял там где вектор не нужен

🐈
Прикольненько. а что лучше вместо него? а то я у с...

Наоборот, надо заменять лист на вектор, когда лист не нужен

🐈
Прикольненько. а что лучше вместо него? а то я у с...

Зачастую std::deque подойдет там, где не подходит вектор

Sergey Skvortsov
И что эта замена дала?)

Не выделяется память целым непрерывным куском?

Sergey Skvortsov
И что?

Не всегда это приемлемо Например, когда ну уж очень много данных надо хранить

Владимир- Автор вопроса
Danya🔥
Да std::list редко когда приемлемо использовать

Ну сущности будут добавленын не сразу. Я подумал вектор будет более накладно.

Владимир
Ну сущности будут добавленын не сразу. Я подумал ...

Нет В 99% случаев лист будет накладнее вектора

Danya🔥
А фрагментация — это приемлимо?)

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

Danya🔥
А фрагментация — это приемлимо?)

А что с фрагментацией не так, если надо просто гонять через range-based?

Владимир- Автор вопроса
Danya🔥
А фрагментация — это приемлимо?)

вектор вроже перевыделяет память при добавлении элементов?

Danya🔥
Кеш-миссы?

Не все и не всегда пишут хайлоад, где кэш-миссы страшны настолько Да и более того, при невозможности хранить данные в одном непрерывном куске, дек спасает частично

Ну и ещё совет переключиться на С++20 и сделать auto operator<=>(uint_s) = default;

Georgy Firsov
Не все и не всегда пишут хайлоад, где кэш-миссы ст...

Когда такая невозможность достигается?

Danya🔥
Кеш-миссы?

Я боюсь при переаллокации вектора с 7-8 значным числом элементов отсутствие кеш-миссов будет несильно заметно

Danya🔥
Ну и ещё совет переключиться на С++20 и сделать au...

auto operator==(const uint_s) const = default ты хотел сказать

Alexander Karaev
auto operator==(const uint_s) const = default ты х...

Надрочили тебя на эти консты на работе Но да

Danya🔥
Когда такая невозможность достигается?

32 бита и много данных (Ага, под 32 бита тоже собирают)

Georgy Firsov
32 бита и много данных (Ага, под 32 бита тоже соби...

Ага, и в чем проблема хранить в одном куске?..

Владимир- Автор вопроса
Danya🔥
Но нет <=> всё-таки

Это типа единой конструкции для перегрузки операторов >, <, >= , <=, == ?

Danya🔥
Но нет <=> всё-таки

хм, действительно в каком-то из пропозалов <=> не генерил ==/!=

Danya🔥
Ага, и в чем проблема хранить в одном куске?..

А вот не умещались одним куском никак. На дек перешли - проблема решилась Кейс реальный был

Alexander Karaev
хм, действительно в каком-то из пропозалов <=> не ...

Он их генерит только если = default Если ты сам сделал, то нет

Danya🔥
Ага, и в чем проблема хранить в одном куске?..

При плохом паттерне использования векторов можно x2 анонимки получить, с деком этого не будет

Georgy Firsov
А вот не умещались одним куском никак. На дек пере...

Ну вот, кто-то лист в программе использовал, зафрагментировал всё к чертям)))

Danya🔥
Не очень понял что такое х2 анонимки

Половина выделенной памяти не могла быть использована

Georgy Firsov
Так reserve надо использовать

Это если ты заранее знаешь размер, что не всегда правда

Sergey Skvortsov
Это если ты заранее знаешь размер, что не всегда п...

Да, это верно Хотя чаще всего всё-таки это известно (на моей практике)

Danya🔥
А как это получить?

Сделай просто один огромный вектор и push_back в него по кд Любой адекватный аллокатор при достижении определенного размера на каждой реаллокации будет выделять блок памяти под текущий размер, в итоге не сможет переиспользовать старые (а в случае x2 вообще не сможет переиспользовать по математике)

Alexander Karaev
хм, действительно в каком-то из пропозалов <=> не ...

Забавно, что мы уже об этом говорили довольно давно: https://t.me/supapro/756103

Alexander Karaev
хм, действительно в каком-то из пропозалов <=> не ...

Там говорилось, что <=> недостаточно, нужен отдельный == Емнип при <=> = default генерятся оба сейчас

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
DS
8
Карта сайта