随笔- 70  评论- 0  文章- 0 
  2019年12月2日
摘要:一、C++11采用配对的方括号[]来创建一个匿名函数并执行,如: #include <iostream> int main() { auto func = []{ std::cout << "hello world!!!" << std::endl; }; func(); } 捕获选项: 1)[]: 阅读全文
posted @ 2019-12-02 22:17 zhangnianyong 阅读 (6) 评论 (0) 编辑
  2019年11月22日
摘要:讲mutable前,先讲一下const函数,讲const函数前,先讲一下函数前后加const的区别 一、C++函数前后加const的区别 1)函数前加const:普通函数或非静态成员函数前均可加const修饰,表示函数的返回值为const,不可修改(主要是用于类的指针变量),格式为 const Re 阅读全文
posted @ 2019-11-22 19:08 zhangnianyong 阅读 (10) 评论 (0) 编辑
  2019年11月20日
摘要:一、decltype的意义 有时我们只想从表达式的类型推断出要定义的变量类型,但是不想用其值进行初始化的时候,C++11新标准引入了decltype类型说明符,它的作用是选择并返回操作数的数据类型,在此过程中,编译器分析表达式并得到它的类型,却不实际计算表达式的值。 二、decltype的用法 1) 阅读全文
posted @ 2019-11-20 16:05 zhangnianyong 阅读 (16) 评论 (0) 编辑
摘要:一、左值、右值 1)左值:可以放在赋值号左侧、可以被赋值的值;左值必须要在内存中有实体。 2)右值:必须放在赋值号右侧、取出值赋值给其它变量;右值可以在内存中也可以在CPU寄存器中。 二、引用 引用是C++语法做优化,引用的本质还是靠指针来实现的,引用相当于变量的别名。 声明引用的时候必须初始化,且 阅读全文
posted @ 2019-11-20 10:58 zhangnianyong 阅读 (14) 评论 (0) 编辑
  2019年11月18日
摘要:std::array是具有固定大小的数组,支持快速随机访问,不能添加或删除元素,定义于头文件<array>中。 一、概要 array是C++11新引入的容器类型,与内置数组相比,array是一种更容易使用,更加安全的数组类型,可替代内置数组,作为数组升级版,继承数组最本特性,同时融入部分操作。 二、 阅读全文
posted @ 2019-11-18 15:58 zhangnianyong 阅读 (33) 评论 (0) 编辑
  2019年11月15日
摘要:一、constexpr变量 1)将变量声明为constexpr类型以便由编译器来验证变量的值是否为一个常量表达式,声明为constexpr的变量一定是一个常量,而且必须用常量表达式来初始化,如: int a = 10; constexpr b = a + 10;//错误,需要将a声明为const i 阅读全文
posted @ 2019-11-15 09:52 zhangnianyong 阅读 (2) 评论 (0) 编辑
  2019年11月14日
摘要:一、列表初始化 1)C++11以前,定义初始化的几种不同形式,如下: int data = 0; //赋值初始化 int data = {0}; //花括号初始化 int data(0); //构造初始化 2)C++11以旧语法中花括号初始化形式为基础,设计了列表初始化语法,统一了不同的初始化形式 阅读全文
posted @ 2019-11-14 17:20 zhangnianyong 阅读 (8) 评论 (0) 编辑
摘要:一、for循环新用法——基于范围的for循环 for(元素类型 元素对象 : 容器对象) { //遍历 } 1)遍历字符串 std::string str = "hello world"; for(auto ch : str) { std::cout << ch << std::endl; } 2) 阅读全文
posted @ 2019-11-14 11:58 zhangnianyong 阅读 (9) 评论 (0) 编辑
摘要:一、nullptr关键字及用法 1)NULL的二义性 void func(int) {} void func(int*) {} 当函数调用func(NULL)时会执行哪个函数呢? 先看C++对NULL的定义: #if defined(__cplusplus) # define NULL 0 /* C 阅读全文
posted @ 2019-11-14 10:15 zhangnianyong 阅读 (9) 评论 (0) 编辑
  2019年11月13日
摘要:1、C++11常用特性介绍 从本篇开始介绍C++11常用特性,大致分:关键字及新语法、STL容器、多线程、智能指针内存管理,最后讲一下std::bind和std::function 二、关键字和新语法 1)auto类型修饰符,可以根据初始化代码的内容自动判断变量的类型,而不是显式的指定,如: aut 阅读全文
posted @ 2019-11-13 18:34 zhangnianyong 阅读 (25) 评论 (0) 编辑