我对使用有一些疑问std::map
:
使用 a作为良好实践
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
,它不是在容器中进行顺序搜索,而是进行一些对数搜索,这将比顺序搜索快得多。这种理解正确吗?