我正在尝试在我的一个函数中使用STL队列。在函数内部,我有以下代码:
struct node {
int player1X, player1Y, player2X, player2Y;
int steps;
};
queue<node> q;
但不知怎的,这个队列不会初始化没有错误(queue<int>
工作正常)。我做错了什么?
PS声明中有4个错误:
error: template argument for ‘template<class> class std::allocator’ uses local type ‘PathFinding::minTurns(std::vector<std::basic_string<char> >)::node’
error: trying to instantiate ‘template<class> class std::allocator’
error: template argument 2 is invalid
error: invalid type in declaration before ‘;’ token
如果我将node
交换为int
,则所有4个错误都会消失。
答案 0 :(得分:4)
尝试在命名空间中定义函数外部的结构,例如在全局命名空间中。看来你有一个旧的编译器。