C ++(stl)与Java中的迭代器在概念上有区别吗?
问题内容:
在离开了一段时间并尝试清除旧瓜后,我将返回c ++。
在Java迭代器是一个具有方法容器的接口:hasNext()
,next()
和remove()
。hasNext()
手段的存在 具有对
被越过的容器 的限制的概念 。
//with an Iterator
Iterator<String> iter = trees.iterator();
while (iter.hasNext())
{
System.out.println(iter.next());
}
在C ++标准模板库中,迭代器似乎表示支持的数据类型或类operator++
,operator==
但 没有 内置 限制的概念,
因此在进行下一个项目之前需要进行比较。在正常情况下,第二个迭代器是容器端,用户必须比较两个迭代器来检查限制。
vector<int> vec;
vector<int>::iterator iter;
// Add some elements to vector
v.push_back(1);
v.push_back(4);
v.push_back(8);
for (iter= v.begin(); iter != v.end(); iter++)
{
cout << *i << " "; //Should output 1 4 8
}
有趣的是,在C ++中,指针是数组的迭代器。STL吸收了现有内容并围绕其建立约定。
我还缺少进一步的微妙之处吗?
问题答案: