c – unordered_multimap元素插入
发布时间:2020-12-16 09:36:11 所属栏目:百科 来源:网络整理
导读:我尝试使用以下代码将值插入boost unordered_multimap,但由于它没有编译,因此无效.为什么没有access []运算符? insert()方法也不起作用? #include iostream#include boost/unordered_map.hppusing namespace std;int main(){ typedef boost::unordered_mul
我尝试使用以下代码将值插入boost unordered_multimap,但由于它没有编译,因此无效.为什么没有access []运算符?
insert()方法也不起作用? #include <iostream> #include <boost/unordered_map.hpp> using namespace std; int main() { typedef boost::unordered_multimap< int,boost::unordered_multimap< int,boost::unordered_multimap<int,int> > > unordered_map; unordered_map _3d; _3d[0][0][0] = 10; _3d[0][0][0].insert(10); cout << _3d[0][0][0] << endl; } 错误:
解决方法
unordered_multimap和multimap都不支持operator [],因为它没有明确定义它的含义. operator []背后的想法是你可以编写myMap [key]来表示“与myMap中的键相关联的唯一值”.在处理unordered_multimap时,这在数学上没有明确定义;在multimap中可以有许多具有相同键的键值对,并且不清楚您希望具有哪个特定值.
从您给出的示例来看,您似乎真的想要一个标准的unordered_map而不是一个unordered_multimap.如果您尝试使用地图映射的地图来表示某些更高维的数组,那么您可能只希望将每个坐标映射到一个特定的子空间.用unordered_map替换unordered_multimap应该解决这个问题. 希望这可以帮助! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |