問題CPP02151の解答例と解説 C++ Lv.3
map<int,string> 検索
<解答例 1>
F11キーでフルスクリーンモード、Escキーで元に戻ります。
これは問題文にあるコードそのままだよ。map の中は、キーによる二分木構造で値が保持されているので、find は、二分木検索により、高速に計算できるよ。オーダはO(log n)だよ。
year2city は、"yart to city"で、to を 2 にもじったものだよ。。
year2city は、"yart to city"で、to を 2 にもじったものだよ。。
<解答例 2> 不正解
F11キーでフルスクリーンモード、Escキーで元に戻ります。
これは、こうやってみたくなる気持ちはわかるけど、コンパイルができないよ。3行目の year2city の引数には、const 演算子がついているよね。これは、この変数は変更しないでね、という意味なんだよ。year2city を変更しているつもりはないかもしれないけど、5行目のように[]を使った書き方をすると、もし、year のキーが year2city の中になかった場合は、そのキーの要素が作られてしまうんだ。だから、解答例1のように、要素を追加することなく探索したい場合は、find関数を使うんだ。
初めての方へ:このページは、このサイトで用意しているプログラミング問題の解答と解説のページです。このサイトではブラウザ上からプログラミングができます。会員登録(無料)して、プログラミングしてみませんか?
新規登録
新規登録