c++如何快速遍历 vector容器
时间: 2023-08-13 08:05:39 浏览: 47
在C++中,可以使用范围-based for循环来快速遍历vector容器中的元素。以下是示例代码:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
for (int element : vec) {
std::cout << element << " ";
}
return 0;
}
```
上述代码中,我们首先创建了一个名为`vec`的vector容器,并初始化了一些整数元素。然后,使用范围-based for循环遍历整个容器,将每个元素打印到标准输出。输出结果为:`1 2 3 4 5`。
使用范围-based for循环可以简化遍历vector容器的代码,使其更加易读和简洁。
相关问题
遍历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容器的几种常见方法,根据具体情况选择适合的方法进行遍历。
c++反向遍历vector
要在C++中反向遍历vector,可以使用逆置迭代器。逆置迭代器可以通过使用rbegin()和rend()方法来获取,它们分别指向vector的最后一个元素和第一个元素之前的位置。然后,可以使用逆置迭代器进行遍历并访问vector中的元素。以下是一个示例代码:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 使用逆置迭代器进行反向遍历
for (std::vector<int>::reverse_iterator it = vec.rbegin(); it != vec.rend(); ++it) {
std::cout << *it << " ";
}
return 0;
}
```
输出结果将会是:5 4 3 2 1。在这个示例中,我们使用rbegin()获取逆置迭代器的起始位置,使用rend()获取逆置迭代器的结束位置,并使用++it进行迭代。通过访问*it来获取vector中的元素。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [C++-vector:vector容器逆序遍历【for (auto it = v.rbegin(); it != v.rend(); it++){}】](https://blog.csdn.net/u013250861/article/details/128426362)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *3* [C++小技巧: 集合(vector, list, map, set)的反向遍历](https://blog.csdn.net/oyoung_2012/article/details/108775566)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]