C++ "argument list for class template "迭代器" is missing"错误

C++ "argument list for class template "iterator" is missing" error

本文关键字:迭代器 is 错误 template missing class argument list for C++      更新时间:2023-10-16

我有这个类:

template<typename T>
class Konten
{
    enum { ssize = 100 };
    T stack[ssize];
    int top;
public:
    Konten() : top(0) {}
    void push(T i) {
        assert(top < ssize);  stack[top++] = i;
    };
    T pop() {
        assert(top > 0);  return stack[--top];
    };
    int rozmiar() { return top; };
    class iterator {
        Konten& s;
        int index;
    public:
        iterator(Konten& is) : s(is), index(0) {};
        iterator(Konten& is, bool) : s(is), index(s.top) {};
        T operator++() { // Prefix
            assert(index < s.top);
            return s.stack[++index];
        };
        T operator++(int) { // Postfix
            assert(index < s.top);
            return s.stack[index++];
        };
        T& operator*() const { return s.stack[index]; };
        iterator& operator=(const iterator& rv) {
            s = rv.s;
            index = rv.index;
            return *this;
        }
    };
    iterator begin() { return iterator(*this); };
    iterator end() { return iterator(*this, true); };
    friend class iterator;
};

正如你所看到的,它里面还有另一个类。我想以这种方式创建迭代器类的对象:

Konten<double> pier;
iterator it1(pier);

但是我不断收到以下错误:"缺少类模板"迭代器"的参数列表"。

我做错了什么?

您的迭代器需要声明为 Konten<double>::iterator