
// この時点でキーは"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で質問しましょう!
似たような質問が見つかりました
- 大学受験 The natural condition for human beings is life as 1 2022/04/10 15:17
- 書類選考・エントリーシート 志望理由のアドバイスお願いします!! 1 2022/09/23 11:53
- IT・エンジニアリング 就活、ES添削。 1 2023/07/16 09:26
- 英語 代名詞が文末にくることができない条件に付いて 5 2022/04/19 10:18
- 英語 インタビューの英語 2 2022/06/07 14:22
- 英語 英文の添削お願します 2 2022/06/06 07:02
- 英語 構文把握 6 2022/04/26 17:54
- 英語 代名詞を文末に置くことができる条件について 1 2023/04/11 15:57
- 英語 提示した名言について(並列表現の文法規則) 4 2023/06/02 09:41
- 英語 このHowの使っている意味と答え方を教えてください。 2 2022/10/29 11:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Shiftキーのはめ方を教えてくだ...
-
「か」を数字で表すとどうなり...
-
PgDn、PgUpの設定が急に変わっ...
-
「(アクサングラーブ)キー」と...
-
プラス(足す)キーはどうやっ...
-
サイト画面等で、一瞬に一番下...
-
Ctrlキー+HomeキーでセルA1へ移...
-
パソコン スクショのやり方教...
-
【至急】彼氏のクリスマスプレ...
-
Scroll Lockが勝手に有効になる...
-
操作方法を教えて下さい!
-
エクセルで複数行に散らばった...
-
CAPS LOCKを解除するにはどうす...
-
-(ハイフォンを下に出したいん...
-
デル テンキーパッド
-
UWSCのプログラムについて。キ...
-
矢印キーのロック解除方法
-
Tabキーが右側にないのは
-
パソコンの青い線枠が消えませ...
-
MacのExcelでoptionキーを押し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プラス(足す)キーはどうやっ...
-
メールアドレスの作成の際上バ...
-
PgDn、PgUpの設定が急に変わっ...
-
「(アクサングラーブ)キー」と...
-
プーリーのキーが外れない
-
Scroll Lockが勝手に有効になる...
-
キーボードがCtrlキーが押され...
-
Shiftキーのはめ方を教えてくだ...
-
IMEパッドがショートカットキー...
-
「か」を数字で表すとどうなり...
-
サイト画面等で、一瞬に一番下...
-
PDF-XChange Viewer 全画面表示...
-
VSCodeで上書きモードにならない
-
Ctrlキー+HomeキーでセルA1へ移...
-
Access2010 Enterで次テキスト...
-
パソコンの青い線枠が消えませ...
-
キーボードの上部にあるランプ...
-
プリントスクリーンの仕方について
-
MacのExcelでoptionキーを押し...
-
Tabキーが右側にないのは
おすすめ情報