// この時点でキーは"1,2,3,4,5"と並んでいる
std::map< CString , int >::iterator it = m_mapNOKATA.find("3");
if( it != m_mapNOKATA )
{
(*it).first = "9";
}
というような使い方は出来るのでしょうか?
また、これをした場合、
for( it = m_mapNOKATA.begin() ; it != m_mapNOKATA.end() ; ++it)
{
cout << (*it).first << endl;
}
とすると、結果は
1
2
4
5
9
となるのか、
1
2
9
4
5
となるのでしょうか?
上の結果が正しいように思えますが、だとしたら、キーを変更した時点で並べ替えが起きている?
それとも、キーはinsert後はもう変更できなくて、erase→insertとしなくてはならないのでしょうか?
手元にSTL環境が無いので、確認できません。
どなたかお分かりの方がいらっしゃいましたら教えてください。
たぶん、multimapやsetでも結果は同じかと思います。
No.1ベストアンサー
- 回答日時:
>(*it).first = "9";
それは無理です。
std::mapはinsertの段階で昇順になるよう適切な位置に挿入されます。
>erase→insertとしなくてはならないのでしょうか?
つまりそういう事です。
ところで試しにやってみました。
(*it).first = "9";
firstがconstオブジェクトなのでコンパイルエラーになりました。
No.2
- 回答日時:
stlのmapなどはxtreeのBR-Treeを使用して実装されていますので、BR-Treeの動作を調べると疑問が解けると思います。
参考に良いURLがあったので見てみてください。
BR-Tree : 黒 赤 木
左右のバランスを取るtree構造で、検索が早い。データが挿入されるたびにバランスを取るので、その意味では毎回並び変えが発生しているとも言えますね。
参考URL:http://www.geocities.jp/h2fujimura/mutter/tree/r …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プラス(足す)キーはどうやっ...
-
あさぎーにょちゃんの『別の人...
-
「か」を数字で表すとどうなり...
-
プーリーのキーが外れない
-
キーボードがCtrlキーが押され...
-
(word) 文字列の上に線を引く方法
-
パソコン スクショのやり方教...
-
VSCodeで上書きモードにならない
-
Wordで繰り返しのショートカッ...
-
メールアドレスの作成の際上バ...
-
ノートPC起動中のエラーメッセ...
-
キーボードにキーをつけるため...
-
BackSpaceキーを押しても・・・...
-
MacのExcelでoptionキーを押し...
-
パソコンの青い線枠が消えませ...
-
(C)や(Ω)<←CやΩの下に下...
-
Scroll Lockが勝手に有効になる...
-
Shiftキーのはめ方を教えてくだ...
-
起動時に 固定ディスク起動メニ...
-
VisualStudio.NET2003インストール
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プラス(足す)キーはどうやっ...
-
キーボードがCtrlキーが押され...
-
「か」を数字で表すとどうなり...
-
Scroll Lockが勝手に有効になる...
-
メールアドレスの作成の際上バ...
-
「(アクサングラーブ)キー」と...
-
パソコンの青い線枠が消えませ...
-
IMEパッドがショートカットキー...
-
PgDn、PgUpの設定が急に変わっ...
-
プーリーのキーが外れない
-
Ctrlキー+HomeキーでセルA1へ移...
-
あさぎーにょちゃんの『別の人...
-
VSCodeで上書きモードにならない
-
PDF-XChange Viewer 全画面表示...
-
BackSpaceキーを押しても・・・...
-
パソコンをネットに繋いでいな...
-
矢印キーのロック解除方法
-
Excelでカーソルの移動が...
-
キーボードの上部にあるランプ...
-
Access2010 Enterで次テキスト...
おすすめ情報