c++11


1.智能指针
解决了内存泄露和野指针

2.空指针:nullptr

以前(NULL)

3.auto关键字** 用于定义变量,编译器可以自动判断的类型

(前提:定义一个变量时对其进行初始化)
4.右值引用
//左值引用
以前:
int num = 10;
int &b = num;  //正确
int &c = 10;   //错误,在C++98/03标准中,无法为右值添加引用

实际开发中可能需要对右值进行修改(实现移动语义时就需要),显然左值引用的方式是行不通的。
为此,C++11 标准新引入了另一种引用方式,称为右值引用,用 “&&” 表示。
右值引用也是别名,但其只能对右值引用
int num = 10;
//int && a = num;  //右值引用不能初始化为左值
int && a = 10;

5.标准库扩充(往STL里新加进一些模板类,比较好用)

(1)无序容器(哈希表)
用法和功能同map一模一样,区别在于哈希表的效率更高

(2)array

固定大小的数组,静态数组,
array价值:
1.支持迭代器,更好兼容STL容器的玩法

2.对于越界的检查(最核心的地方)

(3)forward_list

单向链表
支持头插头删,不支持尾插尾删,
不支持在当前位置前面插入和当前位置的删除,支持在当前位置后面插入和删除当前位置后面的

价值:每个节点省了一个指针
(4)匿名函数lambda

6.扩大列表初始化的范围

c++98列表初始化如下:

对于一些自定义的类型,却无法使用这样的初始化。

就无法通过编译,导致每次定义vector时,都需要先把vector定义出来,然后使用循环对其赋初始值,非常不方便。
C++11扩大了用大括号括起的列表(初始化列表)的使用范围,使其可用于所有的内置类型和用户自定义的类型,使用初始化列表时,可添加等号(=),也可不添加。


7.override

指定一个函数覆盖另外一个函数
override作用是帮助检查是否继承了想要继承的虚函数。可以避免出现 “在继承的时候写错了函数(参数类型、参数个数不符),编译没问题但是程序运行时和预想的不一样” 的情况。
建议重写虚函数的时候加上 override

8.final

作用:指定某个虚函数不能在子类中被覆盖,或者某个类不能被子类继承。


9.支持线程

windows和linux下各有自己的接口,这使得代码的可移植性比较差。
C++11中最重要的特性就是对线程进行支持了,使得C++在并行编程时不需要依赖第三方库要使用标准库中的线程,必须包含< thread >头文件。










全部评论

相关推荐

总觉得面了个寂寞,很早的时候拿到了华为实习秋招直通,其实对于我来说,在华为面试和实习结束的那一刻,秋招应该就算结束了,当然,这两天其实还面了几家,但其实也不太想面了,后面应该也没有了,无他,真的是面了太多了,一直在轰轰烈烈搞秋招,期望拿一个大厂的offer,殊不知,cv多模态大厂真的太难了,稍微总结下:百度三面挂快手二面挂字节二面挂阿里腾讯简历挂京东一面无消息,拼多多三面无消息(多半挂)但其实一直也没有特别慌,因为家里人对华为的认可度也蛮高的,领导也一直和我说没什么问题,但华为也一直没开,所以除了互联网大厂,也依然在投在面,想着总得有个保底吧:得物三面完卓驭二面完深信服三面完小马四面完小鹏二面完联洲三面完卡尔三面完还有一堆一二面挂了的最后,除了比亚迪点击即送外,顺丰和招银昨天一起开了奖,本来想着要是晚一点,还可以有个念想,这下开了,念想也没了,感觉还是只能放弃all&nbsp;in等华为,虽然不是什么大厂,但也有点难受,食之无味,弃之可惜,顺丰深圳开的正常价,招银成都开的小sp,都要求月末之前签三方,那必然是不能签的,所以总觉得面了这么多,大大小小秋招投了七八十家,面了五六十场,面了个寂寞,甚至于面了这么多之后,觉得索然无味,剩下一个多月,打算极限考公,尝试一下,主打一个雨露均沾,秋招不负,虽然,啥也没有。最后祝自己也祝大家长风破浪会有时,直挂云帆济沧海。 #你都收到了哪些公司的感谢信?# #秋招你被哪家公司挂了?# #秋招总结#
点赞 评论 收藏
分享
评论
8
41
分享
牛客网
牛客企业服务