跳到主要内容

C++标准库vector以及迭代器的概念?

参考答案:

C++的std::vector是一个动态数组,它可以在运行时增长和缩小。std::vector是C++标准库中的一个模板类,这意味着你可以用它来存储任何数据类型的对象。例如,你可以有一个std::vector<int>来存储整数,或者一个std::vector<std::string>来存储字符串。

迭代器是C++中的一个重要概念,用于访问容器(如vectorlistmap等)中的元素。迭代器可以被看作是一个指向容器内元素的指针。你可以使用迭代器来遍历容器中的所有元素,而无需暴露容器的底层表示。

对于std::vector,迭代器通常被用于遍历和修改其元素。例如,你可以使用迭代器来查找特定元素,或者删除容器中的元素。

下面是一个简单的示例,展示了如何使用std::vector和迭代器:

#include <iostream>
#include <vector>

int main() {
    // 创建一个存储整数的vector
    std::vector<int> myVector = {1, 2, 3, 4, 5};

    // 使用迭代器遍历vector
    for (std::vector<int>::iterator it = myVector.begin(); it != myVector.end(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    // 使用迭代器修改vector中的元素
    for (std::vector<int>::iterator it = myVector.begin(); it != myVector.end(); ++it) {
        *it *= 2;
    }

    // 再次遍历vector,显示修改后的元素
    for (std::vector<int>::iterator it = myVector.begin(); it != myVector.end(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    return 0;
}

在这个示例中,我们首先创建了一个std::vector<int>,并使用迭代器遍历它,打印出每个元素。然后,我们使用迭代器修改每个元素的值,再次遍历并打印修改后的元素。

注意,在C++11及更高版本中,你还可以使用基于范围的for循环(也称为范围for循环)来遍历容器,这使得代码更加简洁:

for (const auto& element : myVector) {
    std::cout << element << " ";
}
std::cout << std::endl;

这种基于范围的for循环隐式地使用迭代器来遍历容器。