C++中vector迭代器遍历
时间: 2024-06-16 19:03:29 浏览: 182
在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++vector迭代器遍历
### C++ Vector 迭代器遍历示例
#### 正向迭代器遍历
为了使用正向迭代器遍历 `vector`,可以通过调用容器的成员函数 `begin()` 和 `end()` 来获得相应的迭代器对象。下面展示了一个简单的例子来说明这一过程[^3]:
```cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> vec = {10, 20, 30, 40, 50};
// 使用显式迭代器遍历
for (auto it = vec.begin(); it != vec.end(); ++it) {
cout << *it << " ";
}
return 0;
}
```
这段代码会依次打印出 `vector` 中存储的所有整数值。
#### 反向迭代器遍历
对于需要按照相反顺序处理数据的情况,则应采用反向迭代器来进行遍历。这可通过调用 `rbegin()` 和 `rend()` 方法实现,如下所示[^1]:
```cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> v = {1, 2, 3, 4, 5};
vector<int>::reverse_iterator it;
for (it = v.rbegin(); it != v.rend(); ++it) {
cout << *it << " ";
}
return 0;
}
```
此程序将按逆序输出给定 `vector` 的各个元素。
#### 增强型for循环(范围for)
除了传统的基于迭代器的方式外,在现代C++标准下还可以利用增强型for循环简化语法结构,从而更加直观地完成相同功能的操作:
```cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> vec = {10, 20, 30, 40, 50};
// 范围for语句
for (const auto& elem : vec) {
cout << elem << " ";
}
return 0;
}
```
这种方法不仅简洁明了而且易于理解维护。
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` 则是数组最后一个元素的下一个位置,循环会在到达这里时结束。
阅读全文
相关推荐














