温馨提示×

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

c++
小樊
84
2024-10-16 12:34:10
栏目: 编程语言

在 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 中的所有元素,并将它们打印出来。注意,反向迭代器的解引用操作符是 *,而不是 ->

0