C++11系列学习之六-----for
前言
C++11这次的更新带来了令很多C++程序员期待已久的for range循环,每次看到javascript, lua里的for range,心想要是C++能有多好,心里别提多酸了。这次C++11不负众望,再也不用羡慕别家人的for range了。
使用场景
ex1:遍历字符串
std::string str = "hello, world";
for(auto ch : str) { std::cout << ch << std::endl;
}
遍历str,输出每个字符,同时用上auto,简直是如虎添翼。
ex2:遍历数组
int arr[] = {1, 2, 3, 4};
for(auto i : arr) { std::cout<< i << std::endl;
}
不用知道数组容器的大小,即可方便的遍历数组。
ex3:遍历stl 容器
std::vector<std::string> str_vec = {"i", "like", "google"};
for(auto& it : str_vec) { it = “c++”;
}
在这段程序中,可以返回引用值,通过引用可以修改容器内容。然后用到了初始化列表,在下一篇文章中,将会介绍。
ex4:遍历stl map
std::map<int, std::string> hash_map = {{1, "c++"}, {2, "java"}, {3, "python"}};
for(auto it : hash_map) { std::cout << it.first << "\t" << it.second << std::endl;
}
遍历map返回的是pair变量,不是迭代器。
转载自:《C++11 之for 新解》
C++11系列学习之六-----for相关推荐
- C++11系列学习之七---------初始化列表
一.前言 C++的学习中,我想每个人都被变量定义和申明折磨过,比如我在大学笔试过的几家公司,都考察了const和变量,类型的不同排列组合,让你区别有啥不同.反正在学习C++过程中已经被折磨惯了,今天再 ...
- C++11系列学习之四----auto
在哪些情况下要申明类型: 定义变量类型 函数返回值,函数参数 表达式返回变量类型 auto关键字原理 在定义变量的时候必须申明类型,c++是强语言类型,在编译阶段需要知道类型,这样的好处是程 ...
- C++11系列学习之三----array/valarray
创建数组,是程序设计中必不可少的一环.我们一般可以有以下几种方法来创建数组. 一.C++内置数组 数组大小固定,速度较快 通用格式是:数据类型 数组名[ 数组大小 ]; 如 int a[40];/ ...
- C++11系列学习之二-----lambda表达式
C++11添加了一项名为lambda表达式的新功能,通过这项功能可以编写内嵌的匿名函数,而不必编写独立函数和函数对象,使得代码更容易理解. lambda表达式的语法如下所示: [capture_blo ...
- [E17264-15]Oracle® Database 2 Day + Real Application Clusters Guide 11g Release 2 (11.2)之六
本文主要摘自于Oracle Database 2 Day + Real Application Clusters Guide 11g Release 2 (11.2) E17264-15,旨在总结和规 ...
- C++11系列学习之五-------decltype
使用场景 在C++中经常要用到很长的变量名,如果已经有变量和你将使用的变量是一个类型,即可使用decltype关键字 来申明一样的类型变量. decltype原理 返回现有变量类型,decl ...
- Go 语言实战: 编写可维护 Go 语言代码建议
Go 语言实战: 编写可维护 Go 语言代码建议 目录 1. 指导原则 1.1 简单性 1.2 可读性 1.3 生产力 2. 标识符 2.1 选择标识是为了清晰, 而不是简洁 2.2 标识符长度 2. ...
- 敏捷开发系列学习总结(11)——Scrum敏捷开发流程的三个角色、四个会议和三个物件
Scrum敏捷开发流程主要包扩三个角色.四个会议和个三物件. 三个角色 Scrum团队中包括三个角色,他们分别是产品负责人.开发团队和 项目的直接管理者(Scrum Master). Scrum 团队 ...
- Lucene学习总结之六:Lucene打分公式的数学推导
Lucene学习总结之六:Lucene打分公式的数学推导 在进行Lucene的搜索过程解析之前,有必要单独的一张把Lucene score公式的推导,各部分的意义阐述一下.因为Lucene的搜索 ...
最新文章
- 【DeepLearning】Exercise:Sparse Autoencoder
- 【经典算法必读】图片分类系列之(一): 你真的了解图片分类(Image Classification)吗?...
- iOS动态部署之RSA加密传输Patch补丁
- Docker镜像的目录存储讲解
- Makefile的写法
- Hibernate延时加载
- VS 2010 OpenGL 配置与实例开发
- ​什么问题最让程序员头秃?我们分析了11种语言的11000个问题
- 时间管理----分析工作安排和首要任务
- pcp pmda mysql_linux下的mysql的安装
- 大数据之-Hadoop之HDFS_HDFS_Shell命令---大数据之hadoop工作笔记0052
- ansible常用ad hoc操作
- 小米总参php面试题_小米2019年PHP工程师面试题和答案解析
- python turtle画小狗_python-turtle-画雪花
- linux 查看硬盘序列号
- 美通企业日报 | 今年中国私家车行驶里程同比大降18%;缤客发布2020年八大旅行趋势...
- 数据爬取-奇技淫巧系列1——抓取隐藏在CDN,防爬代理等服务后面的数据
- Vue+el-tree,元素拖拽时出现禁用图标, 请看解决办法
- JPA criteria 查询:类型安全与面向对象
- 简单的给数字加密解密
热门文章
- TCP/IP(三):IP协议相关技术
- arguments使用
- [scrum]2011/9/24-----第四天
- C#动态加载dll,dll目录指定
- jmeter(四十五)常用Beanshell脚本
- (2.15)备份与还原--使用作业备份、清理过期备份、清理历史记录、事务日志是否备份过...
- Shell编程之if语法练习(LNMP)全过程
- 天梯赛2016-L2
- 期货黄金与现货黄金比较
- 未能加载文件或程序集“Poderosa.Core