C++ vector的迭代器如何使用

avatar
作者
筋斗云
阅读量:0

在 C++ 中,vector 是一种动态数组,它提供了许多方便的成员函数和操作符,包括迭代器(iterator)的使用。使用 vector 的迭代器可以方便地遍历 vector 中的所有元素。

下面是使用 vector 迭代器的示例代码:

#include <iostream> #include <vector>  int main() {     std::vector<int> vec = {1, 2, 3, 4, 5};      // 使用begin()和end()函数获取迭代器的起始和终止位置     for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it) {         std::cout << *it << " ";     }      return 0; } 

在上面的代码中,我们首先包含了 <iostream><vector> 头文件,然后定义了一个 vector<int> 对象 vec,并初始化了其中的元素。接下来,我们使用 begin()end() 函数获取了迭代器的起始和终止位置,并使用一个 for 循环遍历了 vec 中的所有元素,并将它们打印出来。

for 循环中,我们使用了迭代器 it 来访问 vec 中的每个元素。迭代器的类型是 std::vector<int>::iterator,它是一个指针类型,指向 vector 中的元素。我们可以通过解引用迭代器 *it 来访问 vector 中的当前元素。

除了使用 begin()end() 函数获取迭代器的起始和终止位置外,还可以使用 rbegin()rend() 函数获取反向迭代器的起始和终止位置。反向迭代器可以用于反向遍历 vector 中的元素。

下面是一个使用反向迭代器的示例代码:

#include <iostream> #include <vector>  int main() {     std::vector<int> vec = {1, 2, 3, 4, 5};      // 使用rbegin()和rend()函数获取反向迭代器的起始和终止位置     for (std::vector<int>::reverse_iterator rit = vec.rbegin(); rit != vec.rend(); ++rit) {         std::cout << *rit << " ";     }      return 0; } 

在上面的代码中,我们使用了 rbegin()rend() 函数获取了反向迭代器的起始和终止位置,并使用一个 for 循环反向遍历了 vec 中的所有元素,并将它们打印出来。注意,反向迭代器的解引用操作符是 *,而不是 ->

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!