c++11
文章平均质量分 57
逍遥灬申
这个作者很懒,什么都没留下…
展开
-
c++0x:array和for
std::array是一个支持随机访问且大小(size)固定的容器(译注:可以认为是一个紧缩版的vector吧)。它有如下特点: 1.不预留多余空间,只分配必须空间,如 array a={1,2};//a.size=a.capacity() 2.可以使用初始化表(initializer list)的方式进行初始化。 array arr={1,2,3} 3.不支原创 2012-06-24 14:01:00 · 556 阅读 · 0 评论 -
c++0x:对重写(override)的控制-override和final关键字
在 C++11中,我们可以使用新的 override关键字,来让程序员可以更加明显地表明他对于重写的设计意图,增加代码的可读性。例如: class A { public: virtual void show() { cout<<"A"<<endl; } }; class B:public A { public: void show() override { cout<<"B"原创 2012-06-25 17:33:38 · 2848 阅读 · 0 评论 -
c++0x:auto 自动类型识别
c++0x中废除了原来c++中auto关键字的意义,赋予了它新的功能--自动类型识别。类似于c#中的var关键字。 例如: auto i=5;//int auto *p=&i;//int* auto d=5.0;//double auto sum=i+d;//sum为double 当类型很难写时 for(vector::iterator it=vecInt.begin();it!原创 2012-06-23 07:09:18 · 2508 阅读 · 1 评论 -
c++0x:enum枚举类型
标准c++中的enum enum people{man,woman}; c++11中的enum enum class people{man,woman}; 在c++11中enum是“强类型”,不默认的转换成int,而且有类域 people p=man;//标准c++ people pp=people::woman;//c++11,因为有类域,所以可以这样写 int i原创 2012-06-27 09:24:35 · 959 阅读 · 0 评论 -
c++0x:Lambda表达式(匿名函数)
Lambda表达式是一种描述函数对象的机制,它的主要应用是描述某些具有简单行为的函数。 1.由于 lambda 表达式类型化,可以将其分发给 auto 变量或添加到 function 对象,如以下示例所示: auto func=[](int a,double b){return a+b;};function f=func;2.lambda表达式的闭包部分 int a=3,b=4;原创 2012-06-26 09:32:09 · 1078 阅读 · 1 评论 -
Ubuntu下升级GCC
GCC是linux下的最主要的编译器之一,自从C++新标准0x开始,GCC就努力遵循新标准,直到最近GCC已经支持了部分的C++11,现在4.7已经发布了,昨天自己编译了一下试了试,可能是我安装的问题,发现存在一些问题,于是我放弃了4.7,选择使用Ubuntu更新源中的GCC4.6,下面是GCC4.6的一些安装教程,我使用的ubuntu版本是10.10,个人不喜欢11.10的风格,11.04也没有转载 2012-06-27 17:09:31 · 3261 阅读 · 0 评论 -
C++11 多线程:数据保护
在编写多线程程序时,多个线程同时访问某个共享资源,会导致同步的问题,这篇文章中我们将介绍 C++11 多线程编程中的数据保护。 数据丢失 让我们从一个简单的例子开始,请看如下代码: 01 #include 02 #include 03 #include转载 2012-07-12 12:08:22 · 1665 阅读 · 0 评论