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

map<int,string> 構築


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

これは問題文にあるコードをまねして続けて書いたものだよ。



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

これも正解だよ。map は常にキーの昇順でソートされた状態でデータを管理しているので、キーと値を追加する順番が変わっても find を実行するときはいつもキーの昇順に並んでいるから探索がバイナリサーチでできるんだ。だから map にキーと値を入れる順番は特に気にしなくても良いよ。

上のようにプログラムすると、multimapオブジェクトの中のすべての要素を標準出力することができるけれど、解答例1の場合と解答例2の場合は以下のように出力されるよ。
1994Lillehammer
1996Atlanta
1998Nagano
2000Sydney
2002Salt Lake City
2004Athens
2006Turin
2008Beijing
2010Vancouver
2012London
2014Sochi
2016Rio de Janeiro
2018Pyeongchang
2020Tokyo
これは、map はキーと値のデータをいつもキーの昇順でソートされた状態で持っているからなんだ。


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

これも正解だよ。make_pairというのは、2つのデータを格納できるクラスである pair オブジェクトを作る関数で、map の中は実はこの pair でできているんだ。だから外側であらかじめ pair オブジェクトを作って、挿入することもできるんだ。





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



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

パスワード:



パスワード紛失

新規登録