c++0x新特性实例(比较常用的)
//array
#include <array> void Foo()
{
array<int,> a;
generate(a.begin(),a.end(),rand);
sort(a.begin(),a.end()); for (auto n:a)
{
cout<<n<<endl;
}
cout<<"sizeof(a)="<<sizeof(a)<<endl;
}
//auto
#include <vector>
void Foo()
{
auto a = ;
cout<<a<<endl; auto b = 20.0f;
cout<<b<<endl; auto& c = a;
c++;
cout<<a<<endl; vector<int> vec; for(int i = ; i<; i++)
{
vec.push_back(i);
} for(auto i = vec.cbegin(); i!=vec.cend(); i++)
{
cout<<*i<<endl;
} auto pF = [&c](int i)->int{ return c+=i; };
cout<<pF()<<endl;
cout<<a<<endl;
}
//regex
#include <regex>
void Foo()
{
if( regex_match("Hello World!",std::regex("Hello .....!")) )
{
cout<<"Math!"<<endl;
} if( regex_search("321Hello World!765",std::regex("Hello .....!")) )
{
cout<<"Search!"<<endl;
} }
//thread
void Foo()
{
thread t1([]
{
for (int i = ; i < ; i++)
{
cout<<"t1:"<<i<<endl;
}
}
); thread t2([]
{
for (int i = ; i < ; i++)
{
cout<<"t2:"<<i<<endl;
}
}
); t1.join();
t2.join();
}
//future
#include <future>
int Test(int a,int b)
{
cout<<"Test("<<a<<","<<b<<")"<<endl;
return a+b;
} void Foo()
{
future<int> f1 = async(Test,,);
cout<<"f1"<<endl;
future<int> f2 = async(Test,,);
cout<<"f2"<<endl;
future<int> f3 = async(Test,,);
cout<<"f3"<<endl; cout<<f1.get()<<endl<<f2.get()<<endl<<f3.get()<<endl;
}
//enum class
void Foo()
{
#define MAKE_STR(s) #s
enum class Type
{
I = ,
II,
III,
IV,
V
}; if (==(int)Type::V)
{
cout<<MAKE_STR(Type::V);
}
}
//tuple
tuple<int,string,float> Do()
{
return make_tuple(,"hi",20.0f);
}
void Foo()
{
int a = ;
string s = "";
float b = .0f;
tie(a,s,b) = Do(); cout<<a<<endl;
cout<<s.c_str()<<endl;
cout<<b<<endl;
}
//lambda
#include <functional>
void Foo()
{
int a = ;
int b = ;
function<int(int)> pA = [&a,b](int i)->int{ return a+=b+i; };
cout<<pA()<<endl;
cout<<a<<endl; //function<int(int)> pB = [&a,b](int i)->int{ return b+=a+i; }; compile error : 'b': a by-value capture cannot be modified in a non-mutable lambda
cout<<b<<endl; auto pC = [&](int i)->int{ return pA(i); };
cout<<pC();
}
//final
class A final
{
};
/*
class B : public A
{
};
*/
class C
{
virtual void c()final{ }
}; class D : public C
{
//virtual void c(){ }
};
//override
class A
{
virtual void a(){}
}; class B : public A
{
virtual void a()override{}
//virtual void a(int i)override{} error
//virtual void c()override{} error
};
c++0x新特性实例(比较常用的)的更多相关文章
- C++ 0X 新特性实例(比较常用的) (转)
转自:http://www.cnblogs.com/mrblue/p/3141456.html //array #include <array> void Foo1() { array&l ...
- 【学亮IT手记】Java 8新特性实例介绍
java8,也称为jdk1.8,于2014.03.18日发布,它支持函数式编程,新的js引擎,新的日期API,新的Stream Api等. 我们主要讨论以下几个新特性: ①Lambda表达式. 允许把 ...
- C++0x新特性
我是在一个帖子上摘抄的大神语录...感谢supermegaboy大神,给了详尽的解释 下文是一篇转载的Wikipedia的译文,从语言和库双方面概述了C++0x. 右值引用与转移语义 在标准C++语言 ...
- es6/es7/es8常用新特性总结(超实用)
本文标题有误导性,因为我其实想写node8的新特性,说实话一下子从node v1.x跳跃到node 8.x+ 真有点受宠若惊的感觉.一直觉得node 数组. 对象.序列等的处理没有python方便,因 ...
- JDK8新特性(二) 流式编程Stream
流式编程是1.8中的新特性,基于常用的四种函数式接口以及Lambda表达式对集合类数据进行类似流水线一般的操作 流式编程分为大概三个步骤:获取流 → 操作流 → 返回操作结果 流的获取方式 这里先了解 ...
- 分享ES6中比较常用又强大的新特性
前言 es6有很多新东西,但是感觉常用的并不是很多,这里学习记录了一些我自己认为非常常用又强大的新特性. scoping 实用的块级作用域,let x = xxx 可以声明一个块级作用域的局部变量,简 ...
- ES6常用新特性
https://segmentfault.com/a/1190000011976770?share_user=1030000010776722 该文章为转载文章!仅个人喜好收藏文章! 1.前言 前几天 ...
- java-API中的常用类,新特性之-泛型,高级For循环,可变参数
API中的常用类 System类System类包含一些有用的类字段和方法.它不能被实例化.属性和方法都是静态的. out,标准输出,默认打印在控制台上.通过和PrintStream打印流中的方法组合构 ...
- 常用的HTML5、CSS3新特性能力检测写法
伴随着今年10月底HTML5标准版的发布,未来使用H5的场景会越来越多,这是令web开发者欢欣鼓舞的事情.然而有一个现实我们不得不看清,那就是IE系列浏览器还占有一大部分市场份额,以IE8.9为主,w ...
随机推荐
- __HTML_5读取文件API
//HTML5 __FileSystemApi <!doctype html> <html> <head> <meta charset="utf-8 ...
- 洛谷P2015 二叉苹果树
题目描述 有一棵苹果树,如果树枝有分叉,一定是分2叉(就是说没有只有1个儿子的结点) 这棵树共有N个结点(叶子点或者树枝分叉点),编号为1-N,树根编号一定是1. 我们用一根树枝两端连接的结点的编号来 ...
- make xconfig时,出现“Unable to find any QT installation"错误
在make menuconfig的时候,提示是找不到libncurses,最后其实是找不到libncurses-dev,又因为debian系统装的是libncurses5,所以装了libncurses ...
- JSON后端页面解析
json-lib 请求: http://localhost:8080/MyWeb/pay?cmd=getUrl¶m={"OrderId":"sddd111 ...
- linux下IPTABLES配置详解(转)
如果你的IPTABLES基础知识还不了解,建议先去看看.开始配置我们来配置一个filter表的防火墙.(1)查看本机关于IPTABLES的设置情况[ ~]# iptables -L -nChain I ...
- sql server规范
常见的字段类型选择 1.字符类型建议采用varchar/nvarchar数据类型 2.金额货币建议采用money数据类型 3.科学计数建议采用numeric数据类型 4.自增长标识建议采用bigint ...
- POJ2676Sudoku(类似于八皇后)
Sudoku Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 16444 Accepted: 8035 Special ...
- Extjs Window用法详解
今天我们来介绍一下Extjs中一个常用的控件Window.Window的作用是在页面中创建一个窗口,这个窗口作为容器,可以在它里面加入grid.form等控件,从而来实现更加复杂的界面逻辑. 本文的示 ...
- SCI完全攻略:从构思到发表
- CodeForces 701B Cells Not Under Attack
题目链接:http://codeforces.com/problemset/problem/701/B 题目大意: 输入一个数n,m, 生成n*n的矩阵,用户输入m个点的位置,该点会影响该行和该列,每 ...