Size: a a a

2020 August 17

IZ

Ilia Zviagin in pro.cxx
d7d1cd
Это тестовый код, который позволяет воспроизвести ошибку.
...и который её не воспроизводит?
источник

AS

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

IZ

Ilia Zviagin in pro.cxx
Alex Sandrov
Добрый день
У меня такой вопрос. vector хорош для быстрых итераций по всей коллекции. unordered_map хорошо для быстрого доступа по ключу. А кто как совмещает эти два контейнера в чём-то одном, чтобы и доступ по ключу и быстрые итерации/доступ по индексу? 😐
Про какому такому индексу ты хочешь в map иметь доступ?
источник

AS

Alex Sandrov in pro.cxx
Ilia Zviagin
Про какому такому индексу ты хочешь в map иметь доступ?
Не в map, а в vector
хочется и cont["text"] и cont[42]. И быстро :)
источник

IZ

Ilia Zviagin in pro.cxx
Alex Sandrov
Спасибо, гляну, написано, что у них (absl) самая шустрая мапа
А куда уж шустрее unordered map где O(1l)?
источник

IZ

Ilia Zviagin in pro.cxx
Alex Sandrov
Не в map, а в vector
хочется и cont["text"] и cont[42]. И быстро :)
Но в векторе нет доступа по ключу... Семантически нет такой операции
источник

AS

Alex Sandrov in pro.cxx
Ilia Zviagin
А куда уж шустрее unordered map где O(1l)?
Да, но при этом там нельзя cont[42], где 42 - порядковый номер в коллекции
источник

IZ

Ilia Zviagin in pro.cxx
Alex Sandrov
Да, но при этом там нельзя cont[42], где 42 - порядковый номер в коллекции
Объясни, что такое порядковый номер в коллекции, которая map ?
источник

AS

Alex Sandrov in pro.cxx
Ilia Zviagin
Но в векторе нет доступа по ключу... Семантически нет такой операции
Вот! В векторе нет доступа по ключу, в мапе нет доступа по индексу, про это и был вопрос
источник

AS

Alex Sandrov in pro.cxx
Ilia Zviagin
Объясни, что такое порядковый номер в коллекции, которая map ?
Хочется преимуществ vector и unordered_map одновременно, про это был вопрос
источник

IZ

Ilia Zviagin in pro.cxx
Alex Sandrov
Вот! В векторе нет доступа по ключу, в мапе нет доступа по индексу, про это и был вопрос
Ну так вот и объясни свой вопрос то?

Что ты в мап индексировать собрался а что в векторе по ключу искать?

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

IZ

Ilia Zviagin in pro.cxx
Alex Sandrov
Хочется преимуществ vector и unordered_map одновременно, про это был вопрос
Ну это то делается вполне легко, берешь объекты, создаёшь их и хранишь где-то, в вектор и мап помешаешь ссылки на эти объекты, (в виде указателей конечно), и у тебя будет одновременно и то и это
источник

d

d7d1cd in pro.cxx
Ilia Zviagin
...и который её не воспроизводит?
Воспроизводит
источник

AS

Alex Sandrov in pro.cxx
Ilia Zviagin
Ну так вот и объясни свой вопрос то?

Что ты в мап индексировать собрался а что в векторе по ключу искать?

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

IZ

Ilia Zviagin in pro.cxx
d7d1cd
Воспроизводит
Ну у тебя просто вообще не полный пример, так что судить я не могу...
источник

IZ

Ilia Zviagin in pro.cxx
Alex Sandrov
Ну вот есть у меня некий контейнер. Мне иногда надо быстро пробежать по нему, и сделать одно действие по всем элементам. А иногда надо быстро получить элемент из контейнера по ключу.
В чем проблема пробежать быстро по std::map ?
источник

AS

Alex Sandrov in pro.cxx
Ilia Zviagin
В чем проблема пробежать быстро по std::map ?
Дольше по сравнению с vector
источник

d

d7d1cd in pro.cxx
Ilia Zviagin
Ну у тебя просто вообще не полный пример, так что судить я не могу...
Есть код, который воспроизводит ошибку предупреждение. Зачем нужно еще что-то?
источник

IZ

Ilia Zviagin in pro.cxx
Alex Sandrov
Ну вот есть у меня некий контейнер. Мне иногда надо быстро пробежать по нему, и сделать одно действие по всем элементам. А иногда надо быстро получить элемент из контейнера по ключу.
Храни все в std::map
источник

SE

Stanislav Ershov in pro.cxx
Alex Sandrov
Да, но при этом там нельзя cont[42], где 42 - порядковый номер в коллекции
но зачем?
источник