C++标准库vector以及迭代器的概念?
参考答案:
C++的std::vector
是一个动态数组,它可以在运行时增长和缩小。std::vector
是C++标准库中的一个模板类,这意味着你可以用它来存储任何数据类型的对象。例如,你可以有一个std::vector<int>
来存储整数,或者一个std::vector<std::string>
来存储字符串。
迭代器是C++中的一个重要概念,用于访问容器(如vector
、list
、map
等)中的元素。迭代器可以被看作是一个指向容器内元素的指针。你可以使用迭代器来遍历容器中的所有元素,而无需暴露容器的底层表示。
对于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循环隐式地使用迭代器来遍历容器。