C++中vector迭代器遍历
时间: 2024-06-16 08:03:29 浏览: 157
在C++中,vector是一种动态数组,可以存储多个元素。要遍历vector的元素,可以使用迭代器(iterator)来实现。
迭代器是一种指向容器中元素的对象,它可以用于遍历容器中的元素。对于vector,可以使用begin()和end()成员函数获取迭代器的起始位置和结束位置。
下面是使用迭代器遍历vector的示例代码:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用迭代器遍历vector
for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it) {
std::cout << *it << " ";
}
return 0;
}
```
在上面的代码中,我们首先创建了一个包含整数的vector对象vec。然后,使用vec.begin()获取迭代器的起始位置,使用vec.end()获取迭代器的结束位置。接下来,使用for循环和迭代器遍历vector中的元素。在循环中,通过*it来访问当前迭代器指向的元素。
输出结果为:1 2 3 4 5
相关问题
C++中定义迭代器遍历数组
在C++中,迭代器是一种特殊的指针,它用于遍历容器(如数组、向量、集合等)。通过迭代器,我们可以按元素顺序访问容器中的每个元素,而不需要关心底层存储结构。以下是使用迭代器遍历整型数组的基本步骤:
1. 定义数组和迭代器变量:
```cpp
int arr[] = {1, 2, 3, 4, 5};
size_t size = sizeof(arr) / sizeof(arr[0]);
std::vector<int>::iterator iter; // 使用vector的iterator作为示例,但适用于其他支持迭代的容器
```
2. 初始化迭代器:
```cpp
iter = arr; // 将迭代器指向数组的第一个元素
```
3. 遍历数组:
```cpp
while (iter != arr + size) {
std::cout << *iter << " "; // 输出当前元素的值
++iter; // 移动到下一个元素
}
```
在这里,`*iter` 表示通过迭代器访问的当前元素,`arr + size` 则是数组最后一个元素的下一个位置,循环会在到达这里时结束。
c++ vector迭代器的遍历
C++中的`std::vector`是一个动态数组,它提供了一种方便的方式来存储元素并支持动态增长。迭代器是一种特殊的指针,用于遍历容器中的元素,如`vector`。迭代器有三种类型:`iterator`, `const_iterator`, 和 `reverse_iterator`,分别对应于非常量访问、只读访问以及反向访问。
以下是使用`vector`迭代器遍历的基本步骤:
1. 创建一个`vector`实例并填充数据。
```cpp
std::vector<int> vec = {1, 2, 3, 4, 5};
```
2. 使用`begin()`函数获取开始迭代的迭代器,使用`end()`获取结束迭代的迭代器(但不包括`end()`本身),两者之间就是容器的所有元素。
```cpp
auto it = vec.begin(); // 非常量迭代器
auto cit = vec.cbegin(); // 只读常量迭代器
auto rit = vec.rbegin(); // 反向迭代器,从后向前遍历
```
3. 使用循环结构(如`for`循环)遍历`vector`。
```cpp
for (auto it = vec.begin(); it != vec.end(); ++it) {
std::cout << *it << " ";
}
```
在这个循环里,`*it`表示当前迭代器指向的元素值。
阅读全文