Я провел некоторое исследование над бустом и с ++, но не смог найти что-то подходящее для моего вопроса. Есть ли библиотека повышения или функция STL, которая реализует LastIndexOf?
std::string
имеет функцию-член rfind()
который ищет с конца и возвращает индекс, если найден или std::string::npos
если не. Со ссылочной страницы:
Находит последнюю подстроку, равную данной последовательности символов.
Похоже, вы могли бы хотеть std::string::find_last_of
.
Находит последний символ, равный одному из символов в данной последовательности символов. Возвращает позицию найденного символа или npos, если такой символ не найден.
Редактировать:
Также см. Ответ hmjd. Есть различия между find_last_of
а также rfind
в зависимости от того, ищете ли вы один символ, один из множества возможных символов или подстроку.
Конечно, вы можете использовать std::find
с reverse_iterator
s. Например, у вас есть вектор целых чисел, и вы хотите найти в нем последние 5. Ты сделаешь
auto it = std::find(v.rbegin(), v.rend(), 5);
Если вы хотите индекс как таковой, то вы можете получить его из итератора
int index = std::distance(v.begin(), (it+1).base());