如果我有类似下面的课程,请大家:
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
};
};
问题在适当行旁边的代码中 谢谢。
答案 0 :(得分:2)
作为起点,您的值类型应该是容器所包含的对象类型。我的猜测是T或T *,你真的没有提供足够的信息说。 See here解释各种参数的含义。其余的通常可以保留为默认值。
答案 1 :(得分:-1)
至于第一个问题,那应该是迭代器返回的数据类型。大概是T
。
至于第二种情况,它完全取决于你的迭代器实际做了什么,从给出的信息来看,这不是明确的或明显的。
请注意std::iterator
没有为您定义任何操作,它只定义了一些您可以继承的typedef
。
答案 2 :(得分:-2)
除非你真的想学习这些东西,否则我建议使用Boost.Iterator