在适当的时候,我一直在将我的代码从std :: map切换到std :: unordered_map.使用std :: map,我通常会编写以下代码以确保无法修改密钥:
std::map<const std::string, int>
Run Code Online (Sandbox Code Playgroud)
坦率地说,我从未检查过这个const是否具有任何价值.这总是编译和使用g ++.
现在,使用std :: unordered_map,以下内容无法与g ++ 4.5.1链接.
std::unordered_map<const std::string, std::string> m;
m["foo"] = "bar";
Run Code Online (Sandbox Code Playgroud)
有这个链接错误:
未定义的符号:
std::map,引自:
修复很简单,删除const,但除此之外,在STL中是否还有一个点使用任何关联容器类来使用const键类型?是否没有方法可以让您获得任何关联类型的键的引用?
MSN*_*MSN 22
关联容器只显示(键,值)对std::pair<const key_type, mapped_type>,因此键类型上的附加const是多余的.
| 归档时间: |
|
| 查看次数: |
4737 次 |
| 最近记录: |