遍历vector的方法
时间: 2023-12-23 22:05:34 浏览: 70
遍历一个 `vector` 可以使用 `for` 循环,也可以使用迭代器来实现。以下是两种方法的示例代码:
使用 `for` 循环:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
for (int i = 0; i < vec.size(); ++i) {
std::cout << vec[i] << " ";
}
return 0;
}
```
使用迭代器:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
for (auto it = vec.begin(); it != vec.end(); ++it) {
std::cout << *it << " ";
}
return 0;
}
```
需要注意的是,使用迭代器的方式可以适用于任何 STL 容器,而 `for` 循环的方式仅适用于顺序容器(如 `vector`、`list` 等)。此外,C++11 引入了 range-based for 循环,也可以用于遍历容器。
相关问题
遍历vector容器
遍历vector容器有多种方法可以实现。首先,可以使用下标访问元素的方式进行遍历。通过使用for循环和下标变量,可以依次访问vector容器中的每个元素并进行操作。例如,可以使用`obj[i]`来访问第i个元素。
其次,可以使用迭代器(iterator)进行遍历。通过使用`vector<int>::iterator`类型的迭代器,可以遍历整个vector容器,并通过`*it`来访问迭代器所指向的元素。例如,可以使用以下代码进行迭代器遍历:
```
for(vector<int>::iterator it = obj.begin(); it != obj.end(); it++) {
cout << *it << ",";
}
```
此外,还可以使用基于范围的for循环进行遍历。在C++11中引入的这种循环方式可以更简洁地遍历vector容器中的元素。例如,可以使用以下代码进行基于范围的for循环遍历:
```
for(auto iter : obj) {
cout << iter << ",";
}
```
最后,也可以使用成员函数`at()`进行访问。与使用下标类似,可以通过`obj.at(i)`来访问第i个元素。不同的是,当索引超出范围时,`at()`会抛出异常,因此更加安全。例如,可以使用以下代码进行基于`at()`的遍历:[2]
```
for(int i=0; i<obj.size(); i++) {
cout << obj.at(i) << ",";
}
```
这些是遍历vector容器的几种常见方法,根据具体情况选择适合的方法进行遍历。
auto 遍历vector
auto关键字是C++11引入的一种类型推导机制,它可以根据变量的初始化表达式自动推导出变量的类型。在遍历vector时,可以使用auto关键字来简化代码,使代码更加简洁和易读。
遍历vector有多种方式,下面是使用auto关键字进行遍历的示例代码:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用auto关键字遍历vector
for (auto element : vec) {
std::cout << element << " ";
}
return 0;
}
```
在上述代码中,我们定义了一个名为vec的vector,并初始化了一些整数元素。然后使用for循环和auto关键字遍历vector中的每个元素,并将其输出到标准输出流中。
阅读全文