C++11基于范围的for循环

C++11包含一种新的 for 循环,称为基于范围的 for 循环,可以简化对数组元素的遍历。格式如下:

1 for(Type VarName : Array){
2    //每个元素的值会依次赋给 VarName
3 }

例如:

1 int array[] = {1, 2, 3, 4};
2 for(int x : array){
3  cout << x;
4 }
5 cout << endl;

例子会输出:1234

定义用于遍历数组的变量时,可以使用和普通函数参数一样的修饰符。本例的 x 变量相当于传值参数。在循环内部更改 x 不会更改数组。但如果用 & 将 x 定义成传引用,对 x 的修改就会反映到数组中。可以使用 const 修饰符指定变量不能修改。
下例将数组的每个元素加一并输出。输出循环用 auto 数据类型自动判断数组元素的类型。

1 int array[] = {2, 4, 6, 8};
2 for(int &x : array){
3  x++;
4 }
5 for(auto x : array){
6  cout << x;
7 }
8 cout << endl;

输出结果为:3579

时间: 2025-01-12 06:27:18

C++11基于范围的for循环的相关文章

c++11——基于范围的for循环

c++11中有基于范围的for循环,基于范围的for循环可以不再关心迭代器的概念,只需要关系容器中的元素类型即可,同时也不必显式的给出容器的开头和结尾. int arr[] = {1, 2, 3, 4}; for(int a : arr){ ... } vector<string> str_arr{"hello", "world", "fuck"}; for(auto v : str_arr){ ... } 如果希望修改容器中的元素,

c++ 11 基于范围的for循环

基于范围的for循环: 对于内置数组以及包含方法begin()和end()的类(如std::string)和STL容器,基于范围的for循环可以简化为他们编写循环的工作.这种循环对数组或容器中的每个元素执行指定的操作: #include <iostream> int main() { double prices[5] = {4.99,10.99,6.87,7.99,8.49}; for (double x : prices) std::cout << x << std:

C++11 新特性(6) 基于范围的for循环

C++11中添加了一项基于范围的for循环,这可以省却我们很多的代码量. 来自维基百科的解释:http://zh.wikipedia.org/wiki/C++0x#.E5.80.99.E9.81.B8.E8.AE.8A.E6.9B.B4 Boost C++ 定义了许多"范围 (range) "的概念.范围表现有如受控制的列表 (list),持有容器中的两点.有序容器是范围概念的超集 (superset),有序容器中的两个迭代器 (iterator) 也能定义一个范围.这些概念以及操作的

c++11之一: 基于范围的for循环

#include <iostream> using namespace std; int main(){ int ary[5]{1,2,3,4,5}; for (int& e: ary) e *= 2; for (int e: ary) cout<<e<<'\t'; cout<<endl; } 编译使用: g++ -o for for.cpp -std=c++11 for循环后的括号由冒号":"分成两部分,第一部分是范围内用于迭代

python入门(11)条件判断和循环

python入门(11)条件判断和循环 条件判断 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现: age = 20 if age >= 18: print 'your age is', age print 'adult' 根据Python的缩进规则,如果if语句判断是True,就把缩进的两行print语句执行了,否则,什么也不做. 也可以给if添加一个else语句,意思是,如果if判断是False,

Atitit.升级软件的稳定性---基于数据库实现持久化 循环队列 循环队列

Atitit.升级软件的稳定性---基于数据库实现持久化  循环队列 环形队列 1. 前言::选型(马) 1 2. 实现java.util.queue接口 1 3. 当前指针的2个实现方式 1 1.1. 用一个游标last 来指示 (指针表字段last ),麻烦的,不推荐 1 1.2. (简单,推荐)使用循环次数来指示,每循环加1   (字段cirTimes),order by cirtimes 1 4. 表格设计id, cirTimes,createtime,handlerID,recID,d

基于范围的for循环(STL)

1. double prices[5]={4.99,5.99,6.99,7.99,8.99}; for (double x : prices) cout<<x<<endl; //////////////// for (auto x : prices) cout<<x<<endl; 不同于for_each(),基于范围的for循环可修改容器的内容,诀窍是指定一个引用参数.

数学-线性代数导论-#11 基于矩阵A生成的空间:列空间、行空间、零空间、左零空间

线性代数导论-#11 基于矩阵A生成的空间:列空间.行空间.零空间.左零空间 本节课介绍和进一步总结了如何求出基于一个m*n矩阵A生成的四种常见空间的维数和基: 列空间C(A),dim C(A) = r,基 = { U中主元列对应的原列向量 }: 行空间C(AT), dim C(AT) = r,基 = { U中的主元行 }: 1.为什么行空间不表示为R(A)而表示为C(AT)? 因为转置是矩阵的行与列之间的桥梁. 既然我们已经研究过列空间,通过转置,我们可以将行空间视为转置矩阵的列空间. 2.行

基于范围的for循环C++11

这简化了一种常见的循环任务:对数组或容器类,如vector和array,的每个元素执行相同的操作. 1 double prices[5] = {4.99, 10.99, 6.87, 7.99, 8.49}; 2 3 for (double x : prices) 4 5 std::cout<< x << std::endl; 6 7 for (double &x : prices) 8 9 x = x *0.80; 10 11 for (int x: {3, 5, 2, 8