- 締切済み
STLのmapを使ってコードを書き換える
問題文説明とコードは長いので、リンク先のページでまとめました。 http://codepad.org/M5yyvUud 問題文通りのプログラムをstd::setを使って書いてみたのですが、このコードをstd::setではなく、std::mapを使って書き換えるにはどのようにすればよろしいでしょうか? mapを使ってキーとコードを関連付けて、この単語にはこの数値が格納されていると調べれるようにしたいです。 setの時のように上手く組めず悩んでいます。 ご教授よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- 麻野 なぎ(@AsanoNagi)
- ベストアンサー率45% (763/1670)
よく見ると、例題が変。 最初の例題が、 こんにちわわZDいア漢お → いおこちにわんDZア漢 という並び替えになっているのに、 「AあえDCおうい」なら、「ACDあいうえお」になるのはどういう仕掛け? という気がしてしまいます。 しかも、「番号を振り分けて」の番号は、単に、コンテナの先頭から数えた番号ですよね、例題を見る限り。 で、本当に、この set 版と同じものを、map で作るのなら、 include <set> → include <map> set<string> → map<string, int> dic.insert(string) → map[string] = 1; s << *it → s << (*it).second と書き換えるだけで、同じ動きをする気はします(文字の並びは?ですが) でも、map を使って作るプログラムではない気がするので、多分、どこか違うのでしょう。
- Tacosan
- ベストアンサー率23% (3656/15482)
「うまく組めない」というのがどこで何に困っているのかわからんのだが.... 基本的には「今度は何番目」というのを覚えておいて, 単語 (?) を std::map に入れるごとに紐つけるだけでは?