网站首页 > 基础教程 正文
大家好,我是发哥,今天我们来说说C++11基于范围的for循环。
C++ 11标准之前(C++ 98/03 标准),for循环语法格式如下:
for(表达式 1; 表达式 2; 表达式 3){
//循环体
}
C++ 11基于范围的for循环,语法格式如下:
for (declaration : expression){
//循环体
}
其中declaration:表示此处要定义一个变量,该变量的类型为要遍历序列中存储元素的类型。需要注意的是,C++ 11 标准中,declaration参数处定义的变量类型可以用 auto 关键字表示,该关键字可以使编译器自行推导该变量的数据类型。
expression:表示要遍历的序列,常见的可以为事先定义好的普通数组或者容器,还可以是用 {} 大括号初始化的序列。
由此可可以看出,C++11同 C++ 98/03 中 for 循环的语法格式相比较,此格式并没有明确限定 for 循环的遍历范围,这是它们最大的区别,即旧格式的 for 循环可以指定循环的范围,而 C++11 标准增加的 for 循环,只会逐个遍历 expression 参数处指定序列中的每个元素。
示列代码如下:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
char buf[] = "大家好,我是发哥,你们好";
int i;
int len = sizeof(buf);
{
//C++ 98/03 标准 for循环
cout << "c++ 98/03 for start" << endl;
for (i = 0; i < len; i++)
{
cout << buf[i];
}
cout << endl;
vector<char>value_vector(buf,buf+len);
vector<char>::iterator iter;
//vector 容器
for (iter = value_vector.begin(); iter != value_vector.end(); ++iter)
{
cout << *iter;
}
cout << endl;
cout << "c++ 98/03 for end" << endl;
}
{
//C++11 基于范围的for循环
cout << "c++11 基于范围的for循环 程序开始" << endl;
for (char ch : buf)
{
cout << ch;
}
cout << '!' << endl;
vector<char>value_vector(buf, buf + len);
//vector 容器
for (auto ch : value_vector)
{
cout << ch;
}
cout << '!' << endl;
cout << "c++11 基于范围的for循环 程序结束" << endl;
}
return 0;
}
代码运行结果如下:
今天就说到这,谢谢你的关注,记得点赞和评论哦,你的支持是我创建继续创造优秀作品的动力。
猜你喜欢
- 2024-10-19 C语言中的`for`关键字是一种循环控制结构
- 2024-10-19 写给所有人的编程思维-循环篇(for循环)
- 2024-10-19 在PLC编程中,循环语句FOR和WHILE怎么选?
- 2024-10-19 C语言for循环基本流程 c语言for循环程序
- 2024-10-19 C++20尝鲜:基于范围for c++ 范围for
- 2024-10-19 BAT批处理命令之for bat文件中for用法
- 2024-10-19 C语言for循环解析 c语言中for循环
- 2024-10-19 Java Web实战篇:增强for循环实现原理及for循环实战性能优化
- 2024-10-19 1分钟教你学会for循环 for循环教程
- 2024-10-19 C++阶乘:一个数的阶乘和一个范围的阶乘之和
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)