2

ブーストと c++ について調査を行いましたが、質問に関連するものを見つけることができませんでした。lastIndexOfを実装するブースト ライブラリまたは STL 関数はありますか?

4

3 に答える 3

7

あなたが望むかもしれないように見えますstd::string::find_last_of

指定された文字シーケンスの文字の1つに等しい最後の文字を検索します。見つかった文字の位置を返します。そのような文字が見つからない場合はnposを返します。

編集:

hmjdの回答も参照してください。単一の文字を検索するのか、多くの可能な文字の1つを検索するのか、または部分文字列を検索するのかによって、違いがありfind_last_ofます。rfind

于 2013-03-21T20:50:14.953 に答える
5

std::stringrfind()最後から検索し、見つかった場合または見つからなかった場合にインデックスを返すメンバー関数がありますstd::string::npos。リンクされた参照ページから:

指定された文字シーケンスに等しい最後の部分文字列を検索します。

于 2013-03-21T20:44:41.963 に答える
4

std::findもちろん、 s で使用できますreverse_iterator。たとえば、int のベクトルがあり、その中で最後の 5 を見つけたいとします。あなたがやる

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

インデックス自体が必要な場合は、イテレータから取得できます

int index = std::distance(v.begin(), (it+1).base());
于 2013-03-21T20:44:58.987 に答える