有没有办法继承迭代器的东西
Is there a way to inherit iterator stuff
这是一个容器的模板,对其大小有限制。
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 某处的东西?
不是一般的"东西",但对于迭代器,有boost::iterator_facade
和boost::iterator_adapter
.前者使从头开始编写迭代器变得更加容易,后者对于在现有迭代器上进行构建非常方便。
相关文章:
- 使用std::multimap迭代器创建std::list
- 来自 std::list 的迭代器 .end() 按预期返回"0xcdcdcdcdcdcdcdcd"但 .begin()
- C++中带有List类的迭代器Segfault
- 如何在c++迭代器类型中包装std::chrono
- 集合上的输出迭代器:assign和increment迭代器
- Boost Spirit,获取迭代器内部语义动作
- C++:返回一个基于范围 for 循环迭代器,其中包含继承对象
- 迭代器方法无法从Const_iterator继承
- STL 迭代器继承:"value_type"不命名类型
- 有没有办法继承迭代器的东西
- 无法在从std :: vector继承的类中打字迭代器
- cpp迭代器继承
- 由于私有继承,迭代器不可访问
- 迭代器C++模板继承
- 为自定义类继承std::vector::迭代器
- 具有迭代器和继承的 STL 容器
- C++:在不破坏继承机制的情况下,在子类中使用不同的迭代器类型
- 在(私有)继承向量<string>上获取迭代器
- 私有继承vs暴露迭代器
- 我可以/应该从STL迭代器继承