C++11ってとっても便利。
mapのキーもfind関数で結構簡単に検索できちゃう。
ポイントはこんな感じ。
- mapクラスのfindメソッドを呼ぶ
- findメソッドでmapのキーで検索したい文字列を引数に指定する
- 見つかったかどうかはfindメソッドの戻り値のイテレータが最後の位置かどうかで判定する
んで、コード。
// テスト用のデータ(こんな初期化の方法もできるようになった...)
map<string,string> objPairs = {{"a","x"},{"b","y"},{"c","z"}};
// mapにあるキーを探す
auto objFind = objPairs.find("b");
if( objFind == objPairs.end())
{
cout << "b is not found..." << endl;
}
else
{
cout << "b is found!!" << endl;
}
// mapにないキーを探す
auto objNodFind = objPairs.find("x");
if( objNodFind == objPairs.end())
{
cout << "x is not found..." << endl;
}
else
{
cout << "x is found!!" << endl;
}
結果はこんなん。
b is found!! x is not found...
スマートな気がするなぁ…。
んまま、メモってことで。