网站首页 > 基础教程 正文
不断变化的C++
曾几何时,C++语言也好,程序员也好,都是相当自信的。但是随着各种新语言,新架构不断涌现,这种情形慢慢有了一些改变。时至今日,C++的地位虽然谈不上动摇,但是许多场合被人抢了风头也是事实。算是对这种情况的一种回答吧,C++的代码风格也在发生改变。
今天的范围for语句就算是一个例子。
迄今为止的for循环
C++11之前,大致是这样:
int a[] = {1, 2, 3, 4};
int sum = 0;
for(int i = 0 ; i < sizeof(a)/sizeof(a[0]); ++i){
sum += a[i];
}
或者是这样
vector<int> v{1, 2, 3,4};
int sum = 0;
for(auto it = v.begin(); it != v.end(); it++){
sum += *it;
}
可以看出,虽然目的虽然只是对数据集合中的每个元素进行求和,还是要做如下几件事:
定义和初始化循环变量
判断循环条件
调整循环变量
虽然已经在无数的场合被使用,但还是掩盖不了稍显麻烦的事实。为此,C++11引入了范围for语句:
int array[]{1,2,3,4};
int sum=0;
for(int a : array){
sum+=a;
}
vector<int>vect{1,2,3,4};
int sum=0;
for(intv:vect){
sum+=v;
}
for(int v : vect)读作“对于vect中的每一个v”。应该说,程序简练了不少。
运用条件
是不是所有的数据集合可以交给范围for遍历呢?答案是否定的。
数据v被范围for遍历的条件是,该数据支持v.begin()/v.end()或者是begin(v)/end(v)并返回一个迭代器。这并不是一个很苛刻的条件。例如STL中的容器都满足上述条件。
对于内置类型的数组,C++编译器提供了等同于上述接口的机制,因此也可以在范围for中使用。
作者观点
C++变得越来越不像C++了,这也算是一种与时俱进吧。
猜你喜欢
- 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)