`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

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