C++メモ mapで文字列なキーをfind関数で検索してみる

C++

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...

スマートな気がするなぁ…。
んまま、メモってことで。