转自:http://www.cnblogs.com/mrblue/p/3141456.html

  1. //array
  2. #include <array>
  3. void Foo1()
  4. {
  5. array<int, > a;
  6. generate(a.begin(), a.end(), rand);
  7. sort(a.begin(), a.end());
  8.  
  9. for (auto n:a)
  10. {
  11. cout<<n<<" ";
  12. }
  13. cout<<"sizeof(a) = "<<sizeof(a)<<endl;
  14. }
  1. //regex
  2. #include <regex>
  3. void Foo2()
  4. {
  5. if( regex_match("Hello World!", regex("Hello World!")) )
  6. {
  7. cout<<"Math!"<<endl;
  8. }
  9.  
  10. if (regex_search("321Hello World!765", std::regex("Hello")) )
  11. {
  12. cout<<"Search!"<<endl;
  13. }
  14. }
  1. //thread
  2. #include <thread>
  3. void Foo3()
  4. {
  5. thread t1([]
  6. {
  7. for (int i = ; i < ; i++)
  8. {
  9. cout<<"t1:"<<i<<endl;
  10. }
  11. }
  12. );
  13.  
  14. thread t2([]
  15. {
  16. for (int i = ; i < ; i++)
  17. {
  18. cout<<"t2:"<<i<<endl;
  19. }
  20. }
  21. );
  22.  
  23. t1.join();
  24. t2.join();
  25. }
  1. //future (暂时没理解)
  2. #include <future>
  3. int Test(int a, int b)
  4. {
  5. cout<<"Test("<<a<<","<<b<<")"<<endl;
  6. return a+b;
  7. }
  8. void Foo4()
  9. {
  10. future<int> f1 = async(Test,,);
  11. cout<<"f1"<<endl;
  12.  
  13. future<int> f2 = async(Test,,);
  14. cout<<"f2"<<endl;
  15.  
  16. future<int> f3 = async(Test,,);
  17. cout<<"f3"<<endl;
  18.  
  19. cout<<f1.get()<<endl<<f2.get()<<endl<<f3.get()<<endl;
  20. }
  1. //enum class
  2. void Foo5()
  3. {
  4. #define MAKE_STR(s) #s
  5. enum class Type
  6. {
  7. I = ,
  8. II,
  9. III,
  10. IV,
  11. V
  12. };
  13.  
  14. if( ==(int)Type::V )
  15. cout<<MAKE_STR(Type::V)<<endl;
  16. }
  1. //auto
  2. #include <vector>
  3. void Foo6()
  4. {
  5. auto a = ;
  6. cout<<a<<endl;
  7.  
  8. auto b = 20.0f;
  9. cout<<b<<endl;
  10.  
  11. auto& c = a;
  12. c++;
  13. cout<<a<<endl;
  14.  
  15. vector<int> vec;
  16.  
  17. for(int i = ; i<; i++)
  18. {
  19. vec.push_back(i);
  20. }
  21.  
  22. for(auto i = vec.cbegin(); i!=vec.cend(); i++)
  23. {
  24. cout<<*i<<endl;
  25. }
  26.  
  27. auto pF = [&c](int i)->int{ return c+=i; };
  28. cout<<pF()<<endl;
  29. cout<<a<<endl;
  30. }
  1. //lambda
  2. #include <functional>
  3. void Foo7()
  4. {
  5. int a = ;
  6. int b = ;
  7. function<int(int)> pA = [&a,b](int i)->int{ return a+=b+i; };
  8. cout<<pA(a)<<endl;
  9. cout<<a<<endl;
  10.  
  11. //function<int(int)> pB = [&a,b](int i)->int{ return b+=a+i; };
  12. //compile error : 'b': a by-value capture cannot be modified in a non-mutable lambda
  13. cout<<b<<endl;
  14.  
  15. auto pC = [&](int i)->int{ return pA(i); };
  16. cout<<pC()<<endl;
  17. }

C++ 0X 新特性实例(比较常用的) (转)的更多相关文章

  1. c++0x新特性实例(比较常用的)

    //array #include <array> void Foo() { array<> a; generate(a.begin(),a.end(),rand); sort( ...

  2. 【学亮IT手记】Java 8新特性实例介绍

    java8,也称为jdk1.8,于2014.03.18日发布,它支持函数式编程,新的js引擎,新的日期API,新的Stream Api等. 我们主要讨论以下几个新特性: ①Lambda表达式. 允许把 ...

  3. C++0x新特性

    我是在一个帖子上摘抄的大神语录...感谢supermegaboy大神,给了详尽的解释 下文是一篇转载的Wikipedia的译文,从语言和库双方面概述了C++0x. 右值引用与转移语义 在标准C++语言 ...

  4. es6/es7/es8常用新特性总结(超实用)

    本文标题有误导性,因为我其实想写node8的新特性,说实话一下子从node v1.x跳跃到node 8.x+ 真有点受宠若惊的感觉.一直觉得node 数组. 对象.序列等的处理没有python方便,因 ...

  5. JDK8新特性(二) 流式编程Stream

    流式编程是1.8中的新特性,基于常用的四种函数式接口以及Lambda表达式对集合类数据进行类似流水线一般的操作 流式编程分为大概三个步骤:获取流 → 操作流 → 返回操作结果 流的获取方式 这里先了解 ...

  6. 分享ES6中比较常用又强大的新特性

    前言 es6有很多新东西,但是感觉常用的并不是很多,这里学习记录了一些我自己认为非常常用又强大的新特性. scoping 实用的块级作用域,let x = xxx 可以声明一个块级作用域的局部变量,简 ...

  7. ES6常用新特性

    https://segmentfault.com/a/1190000011976770?share_user=1030000010776722 该文章为转载文章!仅个人喜好收藏文章! 1.前言 前几天 ...

  8. java-API中的常用类,新特性之-泛型,高级For循环,可变参数

    API中的常用类 System类System类包含一些有用的类字段和方法.它不能被实例化.属性和方法都是静态的. out,标准输出,默认打印在控制台上.通过和PrintStream打印流中的方法组合构 ...

  9. 常用的HTML5、CSS3新特性能力检测写法

    伴随着今年10月底HTML5标准版的发布,未来使用H5的场景会越来越多,这是令web开发者欢欣鼓舞的事情.然而有一个现实我们不得不看清,那就是IE系列浏览器还占有一大部分市场份额,以IE8.9为主,w ...

随机推荐

  1. vim visual模式 复制

    按ESC再按“V”,进入visual模式 用键盘向左向右箭头选中要复制的文字,按两下"Y"键 再到要粘贴的地方,按“P”键即可. 转自: http://jingyan.baidu. ...

  2. _DataStructure_C_Impl:图的最小生成树

    #include<stdio.h> #include<stdlib.h> #include<string.h> typedef char VertexType[4] ...

  3. USB-HID鼠标、键盘通讯格式(转) 与本人实际测试结果

    内容为网络转载,如有版权问题请联系删除 USB鼠标键盘协议介绍. 鼠标发送给PC的数据每次4个字节:BYTE1 BYTE2 BYTE3 BYTE4.定义分别是:BYTE1 -- |--bit7:    ...

  4. Linq实现between拓展

    先写一个拓展方法 static class Ext { public static IQueryable<TSource> Between<TSource, TKey> (th ...

  5. EasyNVR流媒体直播之:零基础实现摄像头的全平台直播 (二)公网直播的实现

    接上回(https://blog.csdn.net/xiejiashu/article/details/81276870),我们实现内网直播,可以实现直播的web观看,该篇博文我们将实现公网的直播. ...

  6. 9.接口BeanPostProcessor

    package org.springframework.beans.factory.config; import org.springframework.beans.BeansException; p ...

  7. 洛谷2704 [NOI2001]炮兵阵地

    题目戳这里 Solution 状压DP很好的入门题,用熟练位运算貌似也没那么难. 首先分析一下题目: 看见n=100,m=10,立马就想到了状压,看起来也像DP,所以我们还是采用行号为阶段的状压DP. ...

  8. 我的Android进阶之旅------>启动Activity的标准Action和标准Category

    Android内部提供了大量标准的Action和Category常量. 除了参考本文外,您还可以参考了以下链接: http://developer.android.com/reference/andr ...

  9. MySql四种隔离级别

    什么是事务 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消.也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做. 事务的结束有 ...

  10. go语言之并发编程一

    Go语言最大的优势就在于并发编程.Go语言的关键字go就是开启并发编程也就是goroutine的唯一途径.一条go语句以为着一个函数或方法的并发执行.Go语句是由go关键字和表达式组成.比如下面的这种 ...