小编The*_*abu的帖子

Rust Iterator和C++ Iterator之间的主要区别是什么?

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特性,似乎迭代器是容器的包装器,通过以某种方式标准化逻辑来实现更容易的处理(如果是一点都有意义.

我的主要问题是:

  1. 有哪些主要区别?
  2. 为什么Rust以这种方式拥有迭代器,为什么它们表达方式如此不同?
  3. C++中是否有Rust类型的迭代器?
  4. 是否有C++ - 在Rust中输入迭代器?
  5. 它们被称为具体的东西吗?(内部外部?)

c++ iterator rust

14
推荐指数
1
解决办法
1178
查看次数

标签 统计

c++ ×1

iterator ×1

rust ×1