の使用についていくつか質問がありますstd::map
。
enum
をキーとして使用するstd::map
ことは適切ですか? 次のコードを検討してください。enum Shape{ Circle, Rectangle }; int main(int argc, char* argv[]) { std::map<Shape,std::string> strMap; // strMap.insert(Shape::Circle,"Circle"); // This will not compile strMap[Shape::Circle] = "Circle"; // But this will work return 0; }
上記の例で、オーバーロードされた演算子が正しく動作しているのに、呼び出し
insert()
によってコンパイラ エラーが発生するのはなぜですか?[]
アイテムを に挿入するために推奨される方法はどれstd::map
ですか?find()
メソッドがクラスで使用される場合std::map
、コンテナ内で順次検索を行うのではなく、順次検索よりもはるかに高速な対数検索を行うことを理解しています。この理解は正しいでしょうか?