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循环后的括号由冒号":"分成两部分,第一部分是范围内用于迭代的变量,第二部分则表示将被迭代的范围。

基于范围的for循环中迭代的变量可以采用引用的形式,如果迭代变量的值在循环中要改变,否则可以不使用引用。

注意:是否能够使用基于范围的for循环,必须依赖两个条件:

1、for循环迭代的范围是可确定的。

2、迭代的对象实现++和==等操作符。

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

时间: 2024-07-30 11:20:32

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 新特性(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循环

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 定义用于遍历数组的变量时,可以使用和普通函数参数一样的修饰符.本例

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笔记001]修改通用库中的XDynamicArray,使它可以支持C++11的初始化列表和for循环

今天,有空翻了一下<C++Primer plus(第六版)>,看到里面有介绍新的for循环和初始化列表,但是我实现的动态数组XDynamicArray不支持这些新特性,没办法,只好进行改造了. 首先是for循环,如下面的样式 for(auto e:stList) { cout<<e<<endl; } 是于就各种google,和查找C++11的array的源代码,总结:就是提供一个标准的iterator和begin,end这两个方法,就可以了. 是于定义了一个iterat

Advanced Installer 11.9基于IIS打包札记(For MySQL)

原文:Advanced Installer 11.9基于IIS打包札记(For MySQL) Mysql免安装前期部署 下载绿色命令行版本的mysql,将其放入到发布的程序发布包内,执行Update批处理,输入自定义端口号,选一个不冲突的数字,比如3310: 运行scripts启动mysql服务 准备好数据库sql脚本,并且用navcat连接后新建一个空的数据库 打开命令行窗口,进入到mysql的bin目录 首先连接mysql,运行命令语句mysql -P3310 -uroot -p --def

C++11 新特性之 序列for循环

在C++中在C++中for循环可以使用类似java的简化的for循环,可以用于遍历数组,容器,string以及由begin和end函数定义的序列(即有Iterator) #include <iostream> #include <map> #include <string> using namespace std; int main() { map<string, int> ms; ms.insert(make_pair("a", 1))

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循环可修改容器的内容,诀窍是指定一个引用参数.