我想用C ++创建一个堆栈列表,但编译器给了我一些错误消息:
#include <list>
#include <stack>
class cName
{
[...]
list<stack> list_stack;
[...]
}
错误:
error C2143: syntax error : missing ';' before '<'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C2238: unexpected token(s) preceding ';'
答案 0 :(得分:4)
std::stack是一个模板,您需要将它与模板参数一起使用。样本:
class cName
{
typedef int ConcreteType;
std::list<stack<ConcreteType> > list_stack;
^^^^ use it with real type
};
答案 1 :(得分:1)
堆栈也是模板化的,所以它应该是
list<stack <...> > list_stack;
答案 2 :(得分:1)
如果您希望堆栈只处理一种类型,例如int,请将代码中的stack
更改为int
:
list<int> list_stack;
否则,您应该创建自己的模板类型,而不是使用stack
:
template <class T>
class List
{
list<T> list_stack;
T top();
void push(T v);
};