gpt4 book ai didi

c++ - unordered_multimap 元素插入

转载 作者:太空狗 更新时间:2023-10-29 20:17:22 26 4
gpt4 key购买 nike

我尝试使用以下代码将一个值插入到 boost unordered_multimap 中,但这没有用,因为它无法编译。为什么没有访问 [] 运算符?

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||In function 'int main()':
multimap.cpp|19|error: no match for 'operator[]' in '_3d[0]'
multimap.cpp|21|error: no match for 'operator[]' in '_3d[0]'
||=== Build finished: 2 errors, 0 warnings ===

最佳答案

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

从你给出的例子来看,你似乎真的想要一个标准的 unordered_map而不是 unordered_multimap .如果您尝试使用 map 的 map 来表示一些更高维的数组,那么您可能只想将每个坐标映射到一个特定的子空间。替换 unordered_multimapunordered_map应该解决这个问题。

希望这对您有所帮助!

关于c++ - unordered_multimap 元素插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6781222/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com