[解決済み】STLのマップでは、[]よりもmap::insertを使う方が良いのか?]
2022-04-12 03:55:41
質問
少し前に、同僚とSTLの値を挿入する方法について議論しました。
地図
. 私は
map[key] = value;
は自然な感じで読みやすいのですが、彼は
map.insert(std::make_pair(key, value))
.
ただ、なぜ挿入したほうがいいのか、二人とも理由を覚えていないのですが、単にスタイルの好みではなく、効率性など技術的な理由があったことは確かです。その SGI STLリファレンス 厳密に言えば、このメンバ関数は不要であり、便宜上存在するのみである。
誰かその理由を教えてください。それとも、そんなものがあると夢想しているだけなのでしょうか?
解決方法は?
と書くと
map[key] = value;
かどうかはわからない
代わり映えしない
その
value
にとって
key
または、もしあなたが
作成された
しんきん
key
をもって
value
.
map::insert()
が作成されるだけです。
using std::cout; using std::endl;
typedef std::map<int, std::string> MyMap;
MyMap map;
// ...
std::pair<MyMap::iterator, bool> res = map.insert(MyMap::value_type(key,value));
if ( ! res.second ) {
cout << "key " << key << " already exists "
<< " with value " << (res.first)->second << endl;
} else {
cout << "created key " << key << " with value " << value << endl;
}
私のほとんどのアプリでは、通常、作成か置き換えかを気にしないので、読みやすい方の
map[key] = value
.
関連
-
[解決済み】 != と =! の違いと例(C++の場合)
-
[解決済み】テンプレートの引数1が無効です(Code::Blocks Win Vista) - テンプレートは使いません。
-
[解決済み】「std::operator」で「operator<<」にマッチするものがない。
-
[解決済み] なぜ、オブジェクトそのものではなく、ポインタを使用しなければならないのですか?
-
[解決済み] なぜリストの初期化(中括弧を使用)が他の方法より優れているのですか?
-
[解決済み] std::mapで範囲指定for()ループを使用するには?
-
[解決済み】C++のマップのマップをループ処理するにはどうすればいいですか?
-
[解決済み】特定のSTLコンテナをどのようなシナリオで使用するか?
-
[解決済み】c++のmapでinsertとemplaceとoperator[]の比較
-
[解決済み] 地図に挿入する際の好ましい/慣用的な方法は何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] テスト
-
[解決済み】致命的なエラー LNK1169: ゲームプログラミングで1つ以上の多重定義されたシンボルが発見された
-
[解決済み] 非常に基本的なC++プログラムの問題 - バイナリ式への無効なオペランド
-
[解決済み】C++プログラムでのコンソールの一時停止
-
[解決済み】オブジェクト引数のない非静的メンバ関数の呼び出し コンパイラーエラー
-
[解決済み】エラー:不完全な型へのメンバーアクセス:前方宣言の
-
[解決済み】標準ライブラリにstd::endlに相当するタブはあるか?
-
[解決済み】クラスのコンストラクタへの未定義参照、.cppファイルの修正も含む
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み] 地図に挿入する際の好ましい/慣用的な方法は何ですか?