C++迭代器的典型示例是指针,可用于指向C数组中的元素,如下所示:
int array[] = {1, 2, 3, 4};
int* begin = std::begin(array); //Starting iterator
int* end = std::end(array) //Ending iterator
for(int* i = begin; i < end; i++)
{
std::cout << *i << ',';
}
//Prints 1, 2, 3, 4
Run Code Online (Sandbox Code Playgroud)
这很简单.来自cplusplus.com的迭代器的定义是
迭代器是指向一系列元素(例如数组或容器)中的某个元素的任何对象,它能够使用一组运算符迭代该范围的元素...
这是有道理的; 在上面的代码中有两个迭代器(begin和end迭代器),它使用一个for循环并递增.
在Rust中,迭代器的使用方式如下:
let vect = vec![1, 2, 3, 4];
let vect_iter = vect.iter();
Run Code Online (Sandbox Code Playgroud)
什么?要迭代它,你可以:
vect_iter.next();
vect_iter.next();
Run Code Online (Sandbox Code Playgroud)
我在Rust文档中找不到任何指针的确切定义,但是看一下该Iterator特性,似乎迭代器是容器的包装器,通过以某种方式标准化逻辑来实现更容易的处理(如果是一点都有意义.
我的主要问题是: