今日私は空のmap [null]マップにnull要素を作成することに注意してください。私はそれを期待していませんでした。私はちょうどnullを取得し、要素を作成しませんコンテナのようなマップはありますか?私はすべての[]を.find()に置き換える必要がないと思う。std :: mapは空に挿入されませんか?
答えて
あなたはfind()で立ち往生している。それはちょうどmap
がどのように設計されているのか、その唯一の違いと同じような動作のコンテナはありません。 (または、BoBTFishが言ったように、at
を使用できます)
もう少し詳しく説明すると、NULL値への参照を持つことはできません。これは、要素またはend()を指すイテレータを持つか、または参照を返すか例外をスローするメソッドを持つことができることを意味します。 find()
とat()
の2つのオプションがあります。
@ acidzombie24しかし、std :: mapはキーとしてポインタ以上のものを取るように設計されています... – juanchopanza
好きではない場合はstd::map
に委任する独自のコンテナを作成できますが、異なるconst
の実装はoperator[]
となります。もちろん、参照を返すoperator[]
の全体のポイントは、そのためであることに注意してください:
std::map<Key, Value> theMap;
theMap[someKey] = someValue;
が動作することができます。そうしないと、あなたは何を余儀なくされるだろう:
検索にfind
/
at
を使用してより悪いトレードオフのように思える
theMap.insert(std::make_pair(someKey, someValue)];
。 (または、operator[]
を見つけたアイテムにイテレータを返すことができますが、それはfind
とまったく同じです)
ああ、私は '[]単なる書き込みではなく、読み取り/書き込みです。私はC#インデクサーに甘やかされていると思います。私とその説明を思い出させるための+1 –
- 1. std :: mapに挿入するには?
- 2. LINQ挿入 - エラーは表示されませんが挿入されません
- 3. std :: map:挿入されたキーをコピーして移動できますか?
- 4. REDISに挿入されたレコードは保存されません
- 5. C + + std :: mapに挿入する際の奇妙なバグ
- 6. データはsqliteのデータベースに挿入されませんか?
- 7. 挿入時に基づいてstd :: mapから要素を削除します
- 8. std :: mapにデータを挿入し、vc6のstd :: mapのデータを表示する方法
- 9. std :: getlineはstd :: back_insert_iteratorを受け入れません
- 10. PHPはPHPmyAdminのデータベースには挿入されません
- 11. datepickerが入力フィールドに挿入されていません
- 12. SQLクエリがテーブルに挿入されていませんか?
- 13. データはasp.net経由でデータベースに挿入されません
- 14. std :: coutは印刷されません
- 15. ペアのstd :: mapに直接記入
- 16. 新たに挿入されたデータはコンボボックスコントロールに表示されません
- 17. 空のストアを持つExtJSグリッドは、追加/挿入時に最新のレコードしか表示されません。
- 18. #pragma packエラーによるメモリ破損 - std map破損 - 挿入時にクラッシュする
- 19. 更新/挿入はデータソースでサポートされていません
- 20. SSISは計算された列を挿入しません。
- 21. 単一フィールドは挿入されません
- 22. Python psycopg2がpostgresqlテーブルに挿入されていません
- 23. アクセスデータベースにレコードが挿入されていません
- 24. パラメータがMYSQLのストアドプロシージャに挿入されていません
- 25. mysqlクエリがデータベースに挿入されていません
- 26. 行がテーブルに挿入されていません
- 27. データを挿入するとデータベースに複製されません
- 28. FMDBがDBに挿入されていません
- 29. PHP MySQLがデータベースに挿入されていません
- 30. mysqli_multi_queryがmysql dbに挿入されていません
どのように「null」を取得しますか?セマンティクスは、 'operator []'が参照によって返されることです。 – juanchopanza
'find()'ではなく 'at()'を見てください:http://en.cppreference.com/w/cpp/container/map/at – BoBTFish
@BoBTFishいいです。 –