Nav*_*K N 9 c++ enums map standard-library
我有一些使用问题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;
}
Run Code Online (Sandbox Code Playgroud)在上面的示例中,为什么insert()在重载[]运算符正常工作时调用生成编译器错误?建议将哪些方法插入到std::map?
我知道当在类find()上使用该方法时std::map,它不是在容器中进行顺序搜索,而是进行一些对数搜索,这将比顺序搜索快得多.这种理解是否正确?
gim*_*mpf 12
std::vector使用O(1)访问会更好.insert必须像这样使用:mapVar.insert(make_pair(key, value));
另见cppreference.com.std::map具有O(log(n))查找,由标准保证,如果n足够高,则比O(n)快.| 归档时间: |
|
| 查看次数: |
6266 次 |
| 最近记录: |