请系统地介绍C++中的遍历语法
时间: 2024-03-07 11:47:47 浏览: 20
在 C++ 中,遍历语法通常是通过循环来实现的。以下是 C++ 中常用的几种遍历语法:
1. 基于范围的 for 循环:使用范围 for 循环可以方便地遍历数组、容器、字符串等可迭代对象的元素。语法格式为:
```
for (auto& element : container) {
// 操作当前元素
}
```
在循环体内,当前元素被赋值给循环变量 element,可以进行相应的操作。
2. 迭代器遍历:使用迭代器遍历可以遍历所有支持迭代器的容器,包括 vector、list、deque、set 等。语法格式为:
```
for (auto it = container.begin(); it != container.end(); it++) {
// 操作当前元素
}
```
在循环体内,通过迭代器访问当前元素,可以进行相应的操作。
3. 普通 for 循环:使用普通的 for 循环也可以遍历数组、容器等对象的元素。语法格式为:
```
for (int i = 0; i < container.size(); i++) {
// 操作当前元素 container[i]
}
```
在循环体内,通过下标访问当前元素,可以进行相应的操作。
以上是 C++ 中常用的遍历语法,不同的语法适用于不同的场景,选择合适的遍历语法可以提高代码的效率和可读性。
相关问题
c++ pair 遍历 头文件
在C++中,std::pair是一个组合类型,两个值按照顺序组成一个单元素。用途非常广泛。通过pair,我们可以将两个变量进行分组,方便同时操作他们。它通常用于函数返回值、以及STL容器中对于键值对的存储。
在头文件上使用pair需要包含<utility>头文件。
pair的遍历使用C++11里新增加的Range-Based for loop语法,也就是for each。这种语法遍历pair类型的容器时非常简单。例如:
pair <int, double> p[3]; //定义pair型数组p,包含三个元素
p[0].first = 1;
p[1].first = 2;
p[2].first = 3;//给pair的first赋值
p[0].second = 1.1;
p[1].second = 2.2;
p[2].second = 3.3;//给pair的second赋值
for (auto& i : p) {
cout << i.first << " " << i.second << endl;//遍历输出pair的值
}
这段代码使用auto关键字,按照Range-Based for loop的语法方便地遍历了pair数组p的所有元素。输出的内容为:
1 1.1
2 2.2
3 3.3
这样,我们就掌握了pair遍历的方法。它极大地方便了我们在使用pair类型时的操作。
c++中unordered_set如何遍历
在C++中,遍历unordered_set容器有多种方法。下面是三种常见的方法:
方法一:使用迭代器进行遍历
可以使用迭代器来遍历unordered_set容器中的元素。例如,可以使用auto关键字来定义一个迭代器,并用begin()和end()函数获取unordered_set容器的起始和结束迭代器。然后,使用循环将迭代器逐个移动并输出元素。
示例代码如下:
```
std::unordered_set<std::string> uset{ "http://c.biancheng.net/c/", "http://c.biancheng.net/java/", "http://c.biancheng.net/linux/" };
for (auto iter = uset.begin(); iter != uset.end(); iter++) {
std::cout << *iter << std::endl;
}
```
方法二:使用范围for循环遍历
使用C++11引入的范围for循环语法,可以更简洁地遍历unordered_set容器中的元素。在每次循环中,元素被自动赋值给循环变量,并可以直接输出。
示例代码如下:
```
std::unordered_set<std::string> uset{ "http://c.biancheng.net/c/", "http://c.biancheng.net/java/", "http://c.biancheng.net/linux/" };
for (const auto& element : uset) {
std::cout << element << std::endl;
}
```
方法三:使用算法库函数进行遍历
可以使用算法库函数std::for_each来遍历unordered_set容器中的元素。该函数接受一个函数对象(或Lambda表达式)和容器的起始和结束迭代器,并将函数对象应用于每个元素。
示例代码如下:
```
#include <algorithm>
void printElement(const std::string& element) {
std::cout << element << std::endl;
}
std::unordered_set<std::string> uset{ "http://c.biancheng.net/c/", "http://c.biancheng.net/java/", "http://c.biancheng.net/linux/" };
std::for_each(uset.begin(), uset.end(), printElement);
```
这样就可以使用上述三种方法之一来遍历unordered_set容器中的元素。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [STL无序容器之unordered_set和unordered_multiset](https://blog.csdn.net/andyjkt/article/details/116495385)[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_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]