Size: a a a

2020 August 17

IZ

Ilia Zviagin in pro.cxx
Alex Sandrov
Дольше по сравнению с vector
Да нет, ты ошибаешься.
источник

SE

Stanislav Ershov in pro.cxx
https://www.boost.org/doc/libs/1_74_0/doc/html/boost/container/flat_map.html

есть такое, но там нет по индексу обращения
источник

IZ

Ilia Zviagin in pro.cxx
Alex Sandrov
Дольше по сравнению с vector
Итератор что по мап, что по вектору одинаковой сложности.
источник

AS

Alex Sandrov in pro.cxx
Stanislav Ershov
но зачем?
К примеру, у меня вирутальная грида, я скроллюсь на 100000-й элемент в гриде, и мне надо быстро получить 100000-й элемент в контейнере
источник

AS

Alex Sandrov in pro.cxx
Ilia Zviagin
Итератор что по мап, что по вектору одинаковой сложности.
Ну что-то мне не верится, в векторе элементы лежат в памяти один за другим, там итерации быстрее, нет разве?
источник

IZ

Ilia Zviagin in pro.cxx
Alex Sandrov
Ну что-то мне не верится, в векторе элементы лежат в памяти один за другим, там итерации быстрее, нет разве?
Нет разве
источник

IZ

Ilia Zviagin in pro.cxx
Alex Sandrov
Ну что-то мне не верится, в векторе элементы лежат в памяти один за другим, там итерации быстрее, нет разве?
Тебе не надо верить, тебе надо пройти в cpprefereence найти нужные тебе операции и прочитать про их вычислительную сложность, про гарантии, которые должны давать реализации
источник

AT

Andrew Titov in pro.cxx
Alex Sandrov
Нет, хочется доступа И по ключу (например, текстовый ключ) И по индексу.
Я это и имел в виду в своём вопросе.

(Спасибо Илье за более чёткий вопрос.)
источник

m

magras in pro.cxx
Ilia Zviagin
Тебе не надо верить, тебе надо пройти в cpprefereence найти нужные тебе операции и прочитать про их вычислительную сложность, про гарантии, которые должны давать реализации
Эти оценки не учитывают локальность доступа.
источник

IZ

Ilia Zviagin in pro.cxx
magras
Эти оценки не учитывают локальность доступа.
Чего не учитывают?
источник

m

magras in pro.cxx
Ilia Zviagin
Чего не учитывают?
Что быстрее итерироваться по листу или вектору?
источник

IZ

Ilia Zviagin in pro.cxx
magras
Что быстрее итерироваться по листу или вектору?
Одинаково
источник

SE

Stanislav Ershov in pro.cxx
Ilia Zviagin
Одинаково
источник

AK

Andrew Kozlov in pro.cxx
(с точностью до константы)
источник

IZ

Ilia Zviagin in pro.cxx
Andrew Kozlov
(с точностью до константы)
Согласен
источник

AS

Alex Sandrov in pro.cxx
Ilia Zviagin
Одинаково
И это хорошая новость. Раньше было не так.
источник

IZ

Ilia Zviagin in pro.cxx
Alex Sandrov
И это хорошая новость. Раньше было не так.
Всегда было так
источник

m

magras in pro.cxx
Andrew Kozlov
(с точностью до константы)
Ну вот собственно проблема в том, что итерация по нодам разбросанным в памяти на современных процессорах на порядки медленее чем последовательный доступ. Модели считающие асимптотику по количеству операций это не показывают.
источник

m

magras in pro.cxx
Вообще было бы любопытно посмотреть на модель, которая оперирует не количеством операций, а количеством "случайных" обращений к памяти.
источник

AS

Alex Sandrov in pro.cxx
Ilia Zviagin
Всегда было так
Пару лет назад, не помню на каком компиляторе, тестировал vector, map и unordered_map, результаты сильно отличались
источник