如何正确继承std :: iterator

时间:2010-04-23 18:09:46

标签: c++ iterator

如果我有类似下面的课程,请大家:

template<class T>
class X
{
T** myData_;
public:
class iterator : public iterator<random_access_iterator_tag,/*WHAT SHALL I PUT HERE? T OR T** AND WHY?*/>
{
T** itData_;//HERE I'M HAVING THE SAME TYPE AS MAIN CLASS ON WHICH ITERATOR WILL OPERATE
};
};

问题在适当行旁边的代码中 谢谢。

3 个答案:

答案 0 :(得分:2)

作为起点,您的值类型应该是容器所包含的对象类型。我的猜测是T或T *,你真的没有提供足够的信息说。 See here解释各种参数的含义。其余的通常可以保留为默认值。

答案 1 :(得分:-1)

至于第一个问题,那应该是迭代器返回的数据类型。大概是T

至于第二种情况,它完全取决于你的迭代器实际做了什么,从给出的信息来看,这不是明确的或明显的。

请注意std::iterator没有为您定义任何操作,它只定义了一些您可以继承的typedef

答案 2 :(得分:-2)

除非你真的想学习这些东西,否则我建议使用Boost.Iterator

相关问题