C++ 11 笔记 (二) : for循环
首先肯定的是,我不是标题党。。
C++11的for循环确实有跟C++98不一样的地方,还是先上代码:
int test_arr[] = { , , , , };
for (int x : test_arr)
{
std::cout << x << std::endl;
}
看上去跟Java的for循环和C#的foreach很相似,但是Java和C#的for循环是只读的,而C++的可以读写,我们把上面的代码修改成这样:
for (int &x : test_arr)
{
x = ;
}
这样数组中的元素就全都是8了,而Java和C#是不允许修改的。。
这种好东西肯定不能少了std::vector, std::map, std::set这三个神器了,迭代器模式当年可是一种设计模式啊,现在却直接在语言中集成了,又少了一种秀操作的手段。(呵呵呵呵。。)
std::vector<int> test_vector;
test_vector.push_back();
test_vector.push_back();
test_vector.push_back();
test_vector.push_back();
test_vector.push_back();
for (int x : test_vector)
{
std::cout << x << std::endl;
} std::map<std::string, std::string> test_map;
test_map.insert(std::pair<std::string, std::string>("约翰", "电锯叔叔"));
test_map.insert(std::pair<std::string, std::string>("吉尔", "电锯婶婶"));
test_map.insert(std::pair<std::string, std::string>("阿曼达", "电锯姐姐")); for (std::pair<std::string, std::string> test_pair : test_map)
{
std::cout << test_pair.first << std::endl;
std::cout << test_pair.second << std::endl;
} std::set<int> test_set;
test_set.insert();
test_set.insert();
test_set.insert();
test_set.insert();
test_set.insert();
for (int x : test_set)
{
std::cout << x << std::endl;
}
另外还有一点,std::vector是可读写的,但是std::map和std::set是只读的,因为已经声明了const。
算得上废话么,弱弱问一句。。。
另外我很喜欢《电锯惊魂》系列,请无视std::map例子中的字符串。。。
——————————————
4-23 9:43 补充:
std::string也可以的,代码就不加了。。
C++ 11 笔记 (二) : for循环的更多相关文章
- python学习笔记(二)---for循环与操作列表
内容概要 for循环 range(start,end,step)函数 生成随机数列表 list()函数 将range()的结果整合到某个列表 列表的操作 切片(start: end :step) 元组 ...
- 《MFC游戏开发》笔记二 建立工程、调整窗口
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9300383 作者:七十一雾央 新浪微博:http:/ ...
- Java IO学习笔记二
Java IO学习笔记二 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输 ...
- 学习笔记(二)--->《Java 8编程官方参考教程(第9版).pdf》:第七章到九章学习笔记
注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.若有违本之,则本人不负法律责任.违法者自负一切 ...
- muduo学习笔记(二)Reactor关键结构
目录 muduo学习笔记(二)Reactor关键结构 Reactor简述 什么是Reactor Reactor模型的优缺点 poll简述 poll使用样例 muduo Reactor关键结构 Chan ...
- python3.4学习笔记(二) 类型判断,异常处理,终止程序
python3.4学习笔记(二) 类型判断,异常处理,终止程序,实例代码: #idle中按F5可以运行代码 #引入外部模块 import xxx #random模块,randint(开始数,结束数) ...
- Fortran学习笔记4(循环语句)
Fortran学习笔记4 Fortran学习笔记4 逻辑运算 循环 Do语句 Do-While循环 循环控制 循环应用实例 逻辑运算 if命令需要和逻辑运算表达式搭配才能起到很好的效果.下面分别列出F ...
- Linux学习笔记(二) 文件管理
了解 Linux 系统基本的文件管理命令可以帮助我们更好的使用 Linux 系统,以下介绍几个常用的文件管理命令 1.pwd pwd 是 Print Working Directory 的简写,用于显 ...
- amazeui学习笔记二(进阶开发4)--JavaScript规范Rules
amazeui学习笔记二(进阶开发4)--JavaScript规范Rules 一.总结 1.注释规范总原则: As short as possible(如无必要,勿增注释):尽量提高代码本身的清晰性. ...
- Mysql 笔记二
Mysql 笔记二 Mysql 笔记二 Table of Contents 1. 前言 2. Master Thread 工作方式 2.1. 主循环(loop) 2.2. 后台循(backgroup ...
随机推荐
- wechat server的配置
一 服务器地址 https://github.com/donal-tong/wechat4server 包括源代码及数据库脚本放在dump文件夹里 1.根据sql脚本创建需要的数据库hcapi,然后命 ...
- cocos2d-x jsb + cocosbuider 适配iphone5 尺寸
最简单的适配iphone5的方案,应该算是直接用一块图片补上多出来的区域了: 1:Iphone5分辨率为 1136* 640 , 需要在cocosbuilder中将ccb修改为对应的尺寸: Docum ...
- careercup-数学与概率
7.3 给定直角坐标系上的两条线,确定这两条线会不会相交. 解法: 此题有很多不确定的地方:两条线的格式是什么?两条线实为同一条怎么处理?这些含糊不清的地方最好跟面试官讨论一下. 下面将做出以下假设: ...
- sort函数的例子
10.11编写程序,使用stable_sort和isShorter将传递给你的elimDups版本的vector排序.打印vector的内容. #include<algorithm> #i ...
- 详解QUiLoader 动态加载.ui文件
http://blog.chinaunix.net/uid-13838881-id-3652523.html 1.适用情况: 动态加载UI文件是指,用 Qt Designer 通过拖拽的方式生产.ui ...
- xcode 高亮
Cmd+E, Cmd+F and Cmd+G combo is usefull. Depending on why you want to do this, edit all in scope (Ct ...
- [转] Android进阶——安卓接入微信,获取OpenID
PS: sendAuthRequest拿到code,通过code拿到access_token和openId,access_token可以拿到用户的信息 http://blog.csdn.net/hao ...
- JAVA_基础面试题
1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽 ...
- ArrayList的深度copy和浅度拷贝
ArrayList的浅度拷贝方式: 通过Collections.copy方法实现浅度拷贝 ArrayList<GuideGroup> questionGuideGroupList = ne ...
- 关于sqlserver 2008 远程导入表数据
/*不同服务器数据库之间的数据操作*/ --创建链接服务器 exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' ex ...