`map`-подобный интерфейс для `std::vector`; или как обращаться с вектором как с картой индексных значенийC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 `map`-подобный интерфейс для `std::vector`; или как обращаться с вектором как с картой индексных значений

Сообщение Anonymous »

Я делаю что-то с картами (это может быть std::map, другая карта из стандартной библиотеки, карта повышения, пользовательская карта из какой-то другой библиотеки, ...)

Код: Выделить всё

template
void do_map_stuff(T const& t)
{
for(auto const& p: t)
{
do_element_stuff(p.first, p.second);
}
}

// ... or perhaps...

template
void do_map_it_stuff(It it, It end)
{
while(it != end)
{
do_element_stuff(it->first, it->second);
it++;
}
}
У меня также есть векторы (или, возможно, массивы), которые я хотел бы использовать (по крайней мере с одной из) этих функций, поскольку они действуют как карты (с индексами, являющимися ключами).
Каков наиболее простой способ добиться этого с помощью стандартной библиотеки и/или Boost (помимо написания версий каждой из них, которые работают с векторами)? Что-нибудь изменится, если я остановлюсь на более старом компиляторе с поддержкой только до C++17?

Подробнее здесь: https://stackoverflow.com/questions/798 ... -index-val
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»