C++11
文章平均质量分 55
lycclsltt
这个作者很懒,什么都没留下…
展开
-
c++11 新特性之 auto关键字
C++11是对目前C++语言的扩展和修正.C++11包括大量的新特性:包括lambda表达式,类型推导关键字auto、decltype,和模板的大量改进。g++编译c++11命令加上-std=c++11C++11中引入auto第一种作用是为了自动类型推导auto的自动类型推导,用于从初始化表达式中推断出变量的数据类型。通过auto的自动类型推导,可以简化我们的编程工作a原创 2014-06-14 10:33:18 · 1832 阅读 · 0 评论 -
C++11 新特性之 序列for循环
在C++中在C++中for循环可以使用类似java的简化的for循环,可以用于遍历数组,容器,string以及由begin和end函数定义的序列(即有Iterator)#include #include #include using namespace std;int main(){ map ms; ms.insert(make_pair("a", 1)); ms.原创 2014-06-15 10:11:59 · 2044 阅读 · 0 评论 -
C++11 新特性之 Lambda表达式
lambda表达式可以用于创建并定义匿名的函数对象,以简化编程工作Lambda的语法如下:[函数对象参数](操作符重载函数参数)->返回值类型{函数体}[]内的参数指的是Lambda表达式可以取得的变量。(2)函数中的param就是指函数可以得到在Lambda表达式外的全局变量,如果在[]中传入=的话,即是可以取得所有的外部变量,如(1)和(3)Lambda表达式()内的参原创 2014-06-15 10:35:04 · 1289 阅读 · 0 评论 -
C++11 新特性之 nullptr
对于C和C++程序员来说,一定不会对NULL感到陌生。但是C和C++中的NULL却不等价。NULL表示指针不指向任何对象。NULL是一个宏定义在C中将NULL定义为void*指针值为0#define NULL (void*)0在C++中,NULL被定义为常数0#ifndef NULL #ifdef __cplusplus #define NULL 0原创 2014-06-14 22:48:12 · 1330 阅读 · 0 评论 -
C++11 新特性之 变长参数模板
template void fun(ARGS ... args)首先明确几个概念1,模板参数包(template parameter pack):它指模板参数位置上的变长参数,例如上面例子中的ARGS2,函数参数包(function parameter pack):它指函数参数位置上的变长参数,例如上面例子中的args一般情况下 参数包必须在最后面,例如: tem原创 2014-06-15 13:08:00 · 1914 阅读 · 0 评论 -
C++11 新特性之 decltype关键字
decltype关键字用于查询表达式的类型。与其他特性结合起来之后会有意想不到的效果。decltype的语法是decltype (expression)实例:#include #include using namespace std;int main(){ int i; double d; float f; struct A { int i; dou原创 2014-06-14 12:09:23 · 1717 阅读 · 0 评论 -
C++11 新特性之 tuple
我们在C++中都用过pair.pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同.pair可以使用make_pair构造pair p = make_pair(1, "a1");如果传入的参数为多个,那么就需要嵌套pair,如下代码#include #include using namespace std;int main(){ // ,注意:在嵌套模板原创 2014-06-15 12:54:31 · 2249 阅读 · 0 评论 -
boost库学习之 noncopyable
c++中定义一个类时,如果不明确定义拷贝构造函数和拷贝赋值操作符,编译器会为我们自动生成这两个函数如class TestClass{public: TestClass(const TestClass&); TestClass& operator=(const TestClass&);};如何防止类的实例被拷贝呢?可以将拷贝构造函数和拷贝赋值操作符定义为privateclass TestC原创 2015-01-30 20:33:58 · 9042 阅读 · 0 评论