【发布时间】:2011-10-10 12:10:40
【问题描述】:
我尝试使用以下代码将一个值插入到 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;
}
错误:
multimap.cpp||在函数
'int main()':
multimap.cpp|19|错误:'operator[]'在'_3d[0]'中不匹配
multimap.cpp|21|错误:'operator[]'在'_3d[0]'中不匹配
||=== 构建完成:2 个错误,0 个警告 ===
【问题讨论】:
-
定义“不起作用”。你得到了什么错误?今天我的 ESP 出现故障,所以你必须帮助我来帮助你。
-
我编辑了上面的错误。
-
std::multimap也没有operator[]-- 你为什么期望unordered_multimap出现? -
@ildjarn 我从未尝试过使用 std::multimap。不只是 unordered_multimap 提升吗?
-
@lost_with_coding :
unordered_multimap也在std::tr1命名空间的TR1 中,在std命名空间的C++0x 中。在所有情况下,它都是以std::multimap为模型的,而std::multimap又没有operator[]——它怎么可能呢?它会返回什么类型?