在 Java 中,您可以执行以下操作
List<int> myList = new ArrayList<int>();
Iterator iter = myList.Iterator();
即使 Iterator 是一个泛型/模板接口,它也不必在从另一个泛型分配时显式地指定其模板类型。它能够使用 myList<.int> 中已经存在的类型
我试图在 C++ 中建立一个类似的框架来包装 STL 库。我有以下工作。
List<int>* myList = new ArrayList<int>();
Iterator<int>* iter = myList->GetIterator();
<int>
当我声明迭代器指针时,有什么办法可以摆脱?它按原样工作得很好,如果我不必每次要迭代时都抓取类型会方便得多。
我希望它看起来像这样。
List<int>* myList = new ArrayList<int>();
Iterator* iter = myList->GetIterator();
我的迭代器类看起来像这样
template <class T>
class Iterator
{
public:
virtual boolean HasNext() = 0;
virtual T Next() = 0;
virtual void Remove() = 0;
};
干杯。