ブーストと c++ について調査を行いましたが、質問に関連するものを見つけることができませんでした。lastIndexOfを実装するブースト ライブラリまたは STL 関数はありますか?
質問する
2178 次
3 に答える
7
あなたが望むかもしれないように見えますstd::string::find_last_of
。
指定された文字シーケンスの文字の1つに等しい最後の文字を検索します。見つかった文字の位置を返します。そのような文字が見つからない場合はnposを返します。
編集:
hmjdの回答も参照してください。単一の文字を検索するのか、多くの可能な文字の1つを検索するのか、または部分文字列を検索するのかによって、違いがありfind_last_of
ます。rfind
于 2013-03-21T20:50:14.953 に答える
5
std::string
rfind()
最後から検索し、見つかった場合または見つからなかった場合にインデックスを返すメンバー関数があります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 に答える