C++11范围for

在C++98中,不同的STL容器和C风格数组的遍历方式各不相同,写法也不统一,而且不够简洁。而C++11基于范围的for循环可以简洁并且统一的方式遍历STL容器和C风格数组。

在介绍for循环新的语法之前,简单来看一下for循环之前遍历STL容器的例子

cpp 复制代码
#include<iostream>
#include<vector>

int main()
{
	std::vector<int> vec = { 1,6,9,8,5,4,11 };
	for (auto it = vec.begin(); it != vec.end(); it++)
	{
		std::cout << (*it) << " ";
	}
	return 0;
}

我们在遍历的过程中需要给出容器的两端:开头(begin)和结尾(end),但它不是基于范围来遍历的。在基于范围的for循环中,不需要给出开头和结尾的迭代器,直接抽取容器中的元素进行计算,使用这种方法可以让编码更简单。

C++98中for循环的语法格式:

cpp 复制代码
for(init;expression;update)
{
	//TODO(循环体内容)
}

注意:init指声明初始化的遍历的次数,expression限制初始值的数值,update更新初始值,也就是循环次数的累加。

C++11的for循环的语法格式:

cpp 复制代码
for(declaration : expression)
{
	//TODO(循环体)
}

注意:在上面的语法格式中 declaration 表示遍历声明,在遍历过程中,当前被遍历到的元素会被存储到声明的变量中。expression 是要遍历的对象,它可以是表达式、容器、数组、初始化列表等。


推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家:
零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核)
https://xxetb.xet.tech/s/3Zqhgt

相关推荐
草莓熊Lotso2 分钟前
模板进阶:从非类型参数到分离编译,吃透 C++ 泛型编程的核心逻辑
linux·服务器·开发语言·c++·人工智能·笔记·后端
草莓熊Lotso7 分钟前
《算法闯关指南:优选算法--前缀和》--25.【模板】前缀和,26.【模板】二维前缀和
开发语言·c++·算法
hetao17338377 分钟前
[CSP-S 2024] 超速检测
c++·算法
胖咕噜的稞达鸭14 分钟前
封装map和set(红黑树作为底层结构如何实现map和set插入遍历)
c语言·数据结构·c++·算法·gitee·哈希算法
浔川python社21 分钟前
C++ 实际应用系列(第六部分):并发系统的性能优化与工程实践(完)
开发语言·c++·性能优化
Dxy123931021625 分钟前
python如何做声音识别
开发语言·python
superlls34 分钟前
(场景题)Java 导出 Excel 的两种方式
java·开发语言·后端·excel
@LetsTGBot搜索引擎机器人2 小时前
Telegram 被封是什么原因?如何解决?(附 @letstgbot 搜索引擎重连技巧)
开发语言·python·搜索引擎·机器人·.net
沐欣工作室_lvyiyi4 小时前
基于Matlab的简易振动信号分析系统(论文+仿真)
开发语言·matlab·毕业设计·振动信号分析
2401_841495644 小时前
【数据结构】基于Prim算法的最小生成树
java·数据结构·c++·python·算法·最小生成树·prim