我是迭代器类的新手;不是如何在容器中使用迭代器,而是如何实现迭代器类。我有两个文件,.h和.cpp。现在,我的.cpp文件中出现编译器错误,显示“ 严重错误:'iterator'不是类,名称空间或枚举”。我不明白为什么它告诉我这一点。
注意:我确定我的代码中还有其他错误,但是现在我只是想解决现有的编译器错误。
Base.h
error_info
Base.cpp
#ifndef Base_h
#define Base_h
class Base {
protected:
std::vector<std::vector<std::string> > vec;
public:
class iterator {
private:
Base* p = nullptr;
size_t x, y;
public:
iterator() = default;
iterator(Base *, size_t, size_t);
~iterator();
iterator &operator++();
Base operator*() const;
}
iterator begin() const;
iterator end() const;
// bunch of other iterator::functions and Base::functions
};
#endif
编译器错误
iterator::iterator(Base *b, size_t i, size_t j): p(b), x(i), y(j) {}
iterator::~iterator();
// Bunch of other iterator::functions including Base::functions