not good but great

プログラミング、アート、映画・本の感想について書きます。

C++で連想配列のキーの有無をチェックする

学校の研究でcppを扱うので、そのときに知ったことをメモしておく。

連想配列を生成して、キーがあるかどうかチェックするコードを書いてみた。

コード

#include <iostream>
#include <map>

using namespace std;

/*
* Keyの有無をチェックする
*/
bool checkKey(map<string,string> &m,string name){
	if(m.find(name) == m.end()){
		cout << name << "曜日の予定は" <<"未登録です" << endl;
		return false;
	}else{
		cout << name << "曜日の予定は" << m[name] << "です" << endl;
	}

	return true;
}

int main(void){
	//連想配列を生成
	map<string,string> plan;
	//key,valueを設定
	plan["月"] = "バイト";
	plan["火"] = "デート";
	plan["水"] = "旅行";

	//予定が登録済みなとき
	checkKey(plan,"月");

	//予定が未登録のとき
	checkKey(plan,"金");

	return 0;
}

出力結果

月曜日の予定はバイトです
金曜日の予定は未登録です


countを使えばコードもすっきりみたいだけど、findという名前がコードの意味をわかりやすくしていると思ったので、findを使った。
mapでキーの有無を調べるには、find()よりcount()が便利 - minus9d's diary