2013-03-21 178 views

回答

5

std::string具有成員函數rfind(),它從末尾開始搜索,如果找到則返回索引,否則返回std::string::npos。從鏈接的參考頁面:

查找與給定字符序列相等的最後一個子字符串。

4

當然,您可以使用std::findreverse_iterator s。例如,您有一個整數矢量,並且您想查找其中的最後5個。你做

auto it = std::find(v.rbegin(), v.rend(), 5); 

如果你想在指數本身,那麼你可以從迭代器

int index = std::distance(v.begin(), (it+1).base()); 
6

看起來你可能想std::string::find_last_of

查找與給定字符序列中的一個字符相等的最後一個字符。如果找不到這樣的字符,則返回找到的字符或npos的位置。

編輯:

另見hmjd的答案。 find_last_ofrfind之間有區別,具體取決於您是在搜索單個字符,多個可能的字符之一還是子字符串。