0

我正在开发一个类项目,为此我们必须创建一个从向量派生的模板类,然后能够从中添加和删除元素。

我想我会创建一个类的迭代器,因为它是一个向量,我认为我应该能够使用“this”并创建迭代器,但“this”是一个指针,所以它不起作用。

如果我尝试这个:vector<T>::iterator p;我得到很多错误,所以我什至可以这样做还是只需要找到不同的解决方案?

4

1 回答 1

0

首先,您不应该继承自std::vector,因为它没有虚拟析构函数。有关更多信息,请参阅不应从 std::vector 继承

如果你想使用iteratorfrom你必须使用指令std::vector将它导入你的类的范围。using

#include <vector>

template < typename T >
class MyVector : std::vector<T>
{
public:
  using typename std::vector<T>::iterator;
};

int main()
{
  MyVector<double>::iterator p;
}
于 2017-05-21T03:41:06.513 回答