簡體   English   中英

C ++中類似Java的lastIndexOf

[英]Java-like lastIndexOf in c++

我對boost和c ++進行了一些研究,但找不到與我的問題相關的任何內容。 是否存在實現lastIndexOf的Boost庫或STL函數?

看來您可能想要std::string::find_last_of

查找等於給定字符序列中一個字符的最后一個字符。 返回找到的字符或npos的位置(如果找不到)。

編輯:

另請參閱hmjd的答案。 find_last_ofrfind之間有區別,這取決於您要搜索的是單個字符,許多可能的字符之一還是子字符串。

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

查找等於給定字符序列的最后一個子字符串。

當然,您可以將std::findreverse_iterator一起使用。 例如,您有一個整數向量,並且想要在其中找到最后5個。 你做

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

如果您本身想要索引,則可以從迭代器中獲取

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM