使用STL的列表对象进行堆栈创建

时间:2013-06-11 04:23:21

标签: c++ list data-structures stl stack

我想用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 ';'

3 个答案:

答案 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);
};