Каков наилучший способ найти позицию последнего вхождения для определенного элемента?
Как то так, но наоборот:
int pos = find(v.begin(), v.end(), item) - v.begin();
2 ответа
Решение
Ты можешь использовать std::find
но используйте обратные итераторы, предоставляемые вашим контейнером:
auto it = std::find(v.rbegin(), v.rend(), item);
int index = v.rend() - it + 1;
Вам нужно +1
так как v.rend()
"указывает" на элемент -1, то есть на один "мимо" первого элемента.
Используйте обратные итераторы:
find(v.rbegin(), v.rend(), item);