06 2017 档案
摘要:constexpr初探 为了使函数获取编译时计算的能力,你必须指定constexpr关键字到这个函数。 除了编译时计算的性能优化,constexpr的另外一个优势是,它允许函数被应用在以前调用宏的所有场合。例如,你想要一个计算数组size的函数,size是10的倍数。如果不用constexpr,你需
阅读全文
摘要:区间迭代的基本语法 近来,基本上所有现代编程语言都有一种对一个区间写for循环的便捷方式。最终,C++也有了相同的概念;你可以给循环提供一个容器,它帮你迭代。前面我们已经在什么是C++11中看到了一些简单的例子。让我们回忆一下区间迭代的样子: 上面代码打印一个名叫vec的vector的内容,用i去捕
阅读全文
摘要:C++11一个最激动人心的特性是支持创建lambda函数(有时称为闭包)。这意味着什么?一个Lambda函数是一个可以内联写在你代码中的函数(通常也会传递给另外的函数,类似于仿函数或函数指针)。使用Lambda,创建机动函数会更简单,而以前你必须创建一个有名函数。在这篇文章中,我先用一些例子解释为什
阅读全文
摘要:新的返回值语法 让我们讲一下新的返回值语法,这个语法还能看到auto的另一个用处。在以前版本的C和C++中,返回值的类型必须写在函数的前面: 在C++11中,你可以把返回类型放在函数声明的后面,用auto代替前面的返回类型,像这样: 但是为什么我要这样用?让我们看一个证明这个语法好处的例子。一个包含
阅读全文
摘要:在C++11中,如果编译器在定义一个变量的时候可以推断出变量的类型,不用写变量的类型,你只需写auto即可。 第一种用法:自动推到内置类型 第二种用法:自动推导模版和迭代器类型 第三种用法:用于模版 上面的代码,我们看到这里需要两个模板参数:一个是Builder对象的类型,另一个是Builder创建
阅读全文
摘要:在c++Template中很多地方都用到了typename与class这两个关键字,而且好像可以替换,是不是这两个关键字完全一样呢? 相信学习C++的人对class这个关键字都非常明白,class用于定义类,在模板引入c++后,最初定义模板的方法为: template<class T>......
阅读全文
摘要:第一步:修改windows注册表 1·开始->运行(或者win键+R),输入REGEDIT,回车,打开注册表编辑器; 2·找到HKEY_CLASSES_ROOT\Directory\Background\shell; 3·右键点击shell,“新建”->“项”,名字是要显示在右键菜单中的,可以随便写
阅读全文
摘要:数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。 如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //
阅读全文
摘要:const引用只读不可修改,与绑定对象是否为const无关。 非const引用可读可改,只可与非const对象对象绑定 非const引用只能绑定到与该引用同类型的对象,const引用则可以绑定到不同但相关的类型的对象或绑定到左值, const引用可以初始化为不同类型的对象或者初始化为右值,如字面值常
阅读全文
摘要:printf("\033[1;33m Hello World. \033[0m \n"); 颜色如下: none = "\033[0m" black = "\033[0;30m" dark_gray = "\033[1;30m" blue = "\033[0;34m" light_blue = "\033[1;34m" green ...
阅读全文

浙公网安备 33010602011771号