学校の研究で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