首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >unordered_multimap元素插入

unordered_multimap元素插入
EN

Stack Overflow用户
提问于 2011-07-21 18:57:03
回答 2查看 1.9K关注 0票数 4

我尝试使用下面的代码将一个值插入到boost unordered_multimap中,但是由于它没有编译,所以没有工作。为什么没有接线员?

insert()方法也不能工作?

代码语言:javascript
复制
#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;
}

错误:

multimap.cpp||In函数'int main()'

multimap.cpp|19|error:与'_3d[0]'中的'operator[]'不匹配

multimap.cpp|21|error:与'_3d[0]'中的'operator[]'不匹配

||===构建完成:2个错误,0警告===

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-21 19:14:03

unordered_multimapmultimap都不支持operator[],因为它没有很好地定义它的含义。operator[]背后的想法是,您可以编写myMap[key]来表示“与myMap中的key相关联的唯一值”。在处理unordered_multimap时,这在数学上没有很好的定义;在multimap中可能有许多具有相同键的键值对,并且不清楚您希望拥有哪个特定值。

从您给出的示例来看,您似乎真的想要一个标准的unordered_map,而不是一个unordered_multimap。如果您试图使用地图映射来表示某个高维数组,那么您可能只想让每个坐标映射到一个特定的子空间。将unordered_multimap替换为unordered_map应该可以修复这个问题。

希望这能有所帮助!

票数 8
EN

Stack Overflow用户

发布于 2011-07-21 19:11:29

boost::unordered_map doesn't appear to have operator[]。使用查找函数代替。

你在用什么推荐信?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6781222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档