gpt4 book ai didi

c++ - 如何声明boost unordered_multimap

转载 作者:行者123 更新时间:2023-11-28 03:48:05 28 4
gpt4 key购买 nike

我正在尝试使用 boost unordered_multimap 类,但在声明它时遇到了问题。错误跟在代码后面。

#include <iostream>
#include <map> // header file needed for to use MAP STL
#include <boost/unordered_map.hpp>

using namespace std;

int main(void)
{

map<int, map<int, map<int,int> > > _3dstl;

_3dstl[0][0][0] = 10;

cout<<_3d[0][0][0]<<endl;


typedef boost::unordered_multimap<int, typedef boost::unordered_multimap<int, int>> unordered_map;
unordered_map _2d;

return 0;
}

这是错误:

||In function 'int main()':|
|17|error: template argument 2 is invalid|
|17|error: template argument 5 is invalid|
|17|warning: 'typedef' was ignored in this declaration|
|18|error: 'unordered_map' was not declared in this scope|
|18|error: expected ';' before 'location3d'|
||=== Build finished: 4 errors, 1 warnings ===|

最佳答案

改变这一行:

typedef boost::unordered_multimap<int, typedef boost::unordered_multimap<int, int>> unordered_map;

对此:

typedef boost::unordered_multimap<int, boost::unordered_multimap<int, int> > unordered_map;

第二个 typedef 不是必需的并且是一个语法错误。同样在 C++2003 中,您必须注意模板声明中的 >>>


此外,请为 typedef 使用与 unordered_map 不同的名称,因为如果您使用 using namespace std;<,这将与 std::unordered_map 冲突(这是 IMO 的一个坏习惯)。建议是 intmap2d 或其他东西。

关于c++ - 如何声明boost unordered_multimap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6780657/

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