1、C++11有哪些新特性?
C++新特性主要包括包含语法改进和标准库扩充两个方面,主要包括以下11点:
一、语法的改进
统一的初始化方法---------使用初始化列表进行初始化(适用性被增加,现可以用于任何类型对象的初始化)
成员变量默认初始化
auto 关键字 用于定义变量,编译器可以自动判断的类型(前提:定义一个变量时对其进行初始化)
decltype 求表达式的类型
智能指针 shared_ptr
空指针 nullptr(原来NULL)
基于范围的 for 循环
右值引用和 move 语义 让程序员有意识减少进行深拷贝操作
二、标准库扩充
无序容器(哈希表) 用法和功能同 map 一模一样,区别在于哈希表的效率更高
正则表达式 可以认为正则表达式实质上是一个字符串,该字符串描述了一种特定模式的字符串
Lambda 表达式
2、说一说你了解的关于lambda函数的全部知识
① 利用lambda表达式可以编写内嵌的匿名函数,用以替换独立函数或者函数对象;
② 每当你定义一个lambda表达式后,编译器会自动生成一个匿名类(这个类当然重载了()运算符),我们称为闭包类型(closure type)。