問題CPP02151の解答例と解説 C++ Lv.3

map<int,string> 検索


<解答例 1>
F11キーでフルスクリーンモード、Escキーで元に戻ります。

これは問題文にあるコードそのままだよ。map の中は、キーによる二分木構造で値が保持されているので、find は、二分木検索により、高速に計算できるよ。オーダはO(log n)だよ。

year2city は、"yart to city"で、to を 2 にもじったものだよ。。



<解答例 2> 不正解
F11キーでフルスクリーンモード、Escキーで元に戻ります。

これは、こうやってみたくなる気持ちはわかるけど、コンパイルができないよ。3行目の year2city の引数には、const 演算子がついているよね。これは、この変数は変更しないでね、という意味なんだよ。year2city を変更しているつもりはないかもしれないけど、5行目のように[]を使った書き方をすると、もし、year のキーが year2city の中になかった場合は、そのキーの要素が作られてしまうんだ。だから、解答例1のように、要素を追加することなく探索したい場合は、find関数を使うんだ。




初めての方へ:このページは、このサイトで用意しているプログラミング問題の解答と解説のページです。このサイトではブラウザ上からプログラミングができます。会員登録(無料)して、プログラミングしてみませんか?
新規登録



ログイン
メールアドレス:

パスワード:



パスワード紛失

新規登録