C++11

CSV文件的操作
map和unordered_map的区别?
共同点:
都是C++标准库提供的关联式容器,即里面放的元素都是K-V键值对,要求key是不能重复的。
给出的时间:
map是在C++98中已经存在,unordered_map是在C++11中才给出的
应用:
1.包含的头文件
2.应用的场景
只要不关心是个否有序,那么就直接使用unordered_map
接口不同,接口的实现原理不同,一个是红黑树,一个是哈希桶

哈希的基本实现与缺点:
在这里插入图片描述
map的迭代器可以双向移动,–>按照中序遍历的方式进行移动的,得到的是有序的序列
unordered_map只能向一个方向移动,按照同好从小到大,一条一条链表进行遍历

C++11:2011年出的C++标准,
已经使用过的C++11的特性:
1.auto:用auto定义变量时,在编译阶段,编译器会推演变量初始化表达式的类型来替换auto.不能使用auto推演函数参数类型,和数组类型
2.auto + for结合起来的范围for
3.nullptr:空值指针 C++: NULL----> 0
4.类成员变量在声明阶段可以带初始值

在这里插入图片描述
5.对默认成员函数的控制
语法:如果用户没有显式定义构造,拷贝构造,赋值运算符重载,析构函数,两个&,编译器会自动的生成默认成员函数

实际情况却不是这个样子的,有的时候编译器生成的默认函数意义不大,如果生成就需要调用程序,这样会影响程序的运行效率,因此有的编译器厂商 没有严格按照语法实现.
编译器生成的构造函数的场景
1.A类具有无参 || 带有全缺省构造函数,B类没有显式定义任何构造函数,但是B类中包含有A类的对象,编译器会在编译阶段给B类生成默认的构造函数
2.继承:假设基类具有无参 || 带有全缺省的构造函数,派生类没有显式定义任何构造函数,编译器会在编译阶段给派生类生成默认的构造函数。
3.在虚拟继承中,需要在构造对象阶段将指向虚基表(偏移量表格)的指针放在对象的前四个字节
4.如果类中具有虚函数,在创建对象期间需要将虚表的地址放在对象的前四个字节

也就是说在需要生成构造函数的阶段编译器会生成默认的函数,在不需要的时候就需要看编译器厂商是咋设计的,不同的编译器厂商设计的应该是不同的。

有些情况下用户不需要生成(比如在实现unique_ptr,不需要拷贝构造函数),编译器反而生成了。而有的地方需要编译器生成,但是编译器反而不生成了(比如有了有参构造函数编译器就不再提供无参构造函数)。

正是因为有了前面的问题所以用户就有了困惑,用户不知道什么情况下编译器生成,用户也没有办法控制编译器生成(C++11以前
C++11扩展了关键字的功能:default delete
default:告诉编译器生成默认的构造函数
Date() = default;即使用户定义了带有参数的构造函数,编译器也会生成无参的构造函数
delete:告诉编译器删除默认的成员函数,即:不生成
unique_ptr(const unique_ptr& A) = delete;//禁止编译器生成拷贝构造函数
6.C++11以前,new int[10]数组,该数组是不能在new期间进行初始化的,int p = new int[10]{1,2,3,4,5,6,7,8,9,0};*

final:
修饰类:该类不能被继承
修饰类中的函数:
只能修饰虚函数,最好让其修饰的派生类的虚函数,
作用:禁止该虚函数在其子类中被重写

final:作用举例:在这里插入图片描述
8.智能指针
C++98 : auto_ptr
C++11:unique_ptr shared_ptr & weak_ptr
9.C++11引入的一些容器
序列式容器:
forward_list—>是带头结点的循环单链表
array:静态类型的顺序表
关联式容器:unordered_map/unordered_set/unordered_multimap/unordered_multiset
10.STL新增了很多的算法

11.初始化
在这里插入图片描述
12.变量的类型推导
auto:
decltype:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
返回值类型追踪
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值