1
这是一个容器的模板,它的大小有限制。有没有办法继承迭代器的东西
template <class T, int MAXSIZE>
class svector {
class iterator : public std::iterator<std::input_iterator_tag, value_type> {
public:
iterator(T* cptr);
iterator(const iterator& mit);
bool operator==(const iterator& rhs) const;
bool operator!=(const iterator& rhs) const;
T operator*();
iterator& operator++();
iterator operator++(int);
protected:
T* eleptr;
};
svector();
svector(const svector& vec);
virtual ~svector();
svector& operator=(const svector& rhs);
iterator begin();
iterator end();
// more
};
正如你所看到的,迭代器也在那里,子类化std :: iterator。 但是,您不能从这个“标记”类继承任何东西,并且我已经勇敢地实现了您可以在此处看到的所有内容。有没有从STL的某个地方继承 的东西?
简短的回答是:No. –
不,你不能继承*功能*,因为这对你构建的每个容器都会有所不同。 – Brian
typedef T *迭代器,你完成了 –