| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> C++11 新特性 -> 正文阅读 |
|
[数据结构与算法]C++11 新特性 |
目录 1 常用特性1.1 新类型整形
字符型
1.2 初始化(1)初始化列表扩大了使用 { } 初始化列表的应用范围,可以用于所有内置类型和用户定义的类型。
创建对象时可以利用 { } 括起来的列表调用构造函数。 (2)防止缩窄转换利用初始化列表编译器可以防止进行缩窄转换,相较于之前的操作具有更好的安全性。 但是允许转换为更宽的类型。 (3)std::initializer_listinitializer_list可用作构造函数的参数,属于STL模板型,具有begin()和end()操作。 可以作为函数的参数(除了构造函数外还可以用于普通函数)。
1.3?声明(1)auto自动类型推断 (2)decltype将变量的类型声明为表达式的类型。
(3)using =别名创建和声明。 using 具有和?typedef 同样的作用,均可以对复杂的标志符创建较为简单的别名。且using可用于模板部分具体化,但typedef没有给作用。
(4)nullptrnullptr表示空指针,不同于旧版本的NULL。 (5)返回类型后置
可以有效解决当编译器刚开始遇到func时并没有局部变量T和U,所有不知道返回类型,在后面使用了返回类型后置和decltype之后可以有效的额解决该问题。 1.4?智能指针unique_ptr shared_ptr weak_ptr 所有的智能指针均可以和STL的移动语义协同工作。 1.5 作用域内枚举使用了 class 和 struct 定义。同时需要显式限定,避免冲突。 作用域内枚举可以在作用域内有相同的枚举子集,只要通过显式的限定就可以避免冲突,叫之前标准更加的灵活和安全。 1.6 类的修改(1)显示构造函数转换explicit用于禁止单参数构造函数导致的自动转换。 通过explicit修饰后只能显示转换(也就是构造函数只能传入和声明的参数类型一样的值)。 (2)类内成员初始化新标准可以在类的内部对成员进行初始化(成员函数和成员变量)。
1.7 模板和STL的修改(1)基于范围的for循环(2)新的STL容器
(3)新的STL方法
(4)valarray/export/尖括号1.8 右值引用传统引用称为左值引用,使得标识符关联到左值。左值是一个表示数据的额表达式,程序可以获取其地址,但是const修饰后,使得不能赋值,但是可以获取地址。 右值引用使用 && 表示,右值引用可以关联到右值,可以出现在赋值表达式右边,但不能对其应用地址运算符的值。右值包括字面常量、表达式及返回值的函数。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 5:31:24- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |