cpp迭代器问题

时间:2009-03-25 11:18:03

标签: c++ templates

template<class T>
    class mStack
    {
    private:
       vector<T> a; 
       vector<T>::iterator top;
    public:
       void push(T);
       T pop();
       mStack();
       void printStack();
};

上面的类代码没有编译......为什么?问题是什么?编译器说“预期;高于顶部”。

1 个答案:

答案 0 :(得分:12)

您需要一个类型名称:

typename vector<T>::iterator top;

这使编译器确保vector<T>确实是一种类型。有关此模板和其他模板的讨论,请参阅C++ FAQ