Есть ли способ написать шаблонную функцию для итераторов контейнера STL, которая работает для std::vector
и std::map
? Следующая функция работает для std::vector<T>, std::array<T>, std::list<T>
template<class Iterator>
void fun(Iterator f, Iterator l)
{
for(; f != l; ++f)
{
doWork(*f); // or maybe f->doSomething();
}
}
Проблема в том, что итератор карты указывает на пару ключ и значение. Могу ли я как-то перегрузить функцию, чтобы принять map<whatever,T>
?