c++ Primer 第九章 顺序容器 重点梗概

前言

顺序容器和关联容器

顺序容器: vector之类的按序索引的容器
关联容器:map等按键索引的容器

容器库概览

将一个容器初始化为另一个容器的拷贝

  1. C c1(c2); C c1 = c2; 两种容器类型和元素类型都必须相同
  2. C c(beg, end); 不要求容器类型一致,甚至元素类型可以转换时,元素类型也可以不一样。

swap和assign

前者必须是两个相同类型的容器
后者则无需
tips:使用非成员函数版本的swap是一个好习惯,在泛型编程中十分钟重要。

容器的比较

必须在元素定义了关系运算符时才能进行比较

元素优先比较,元素按顺序比较完成后未比较出结果的话再比较大小

顺序容器操作

添加元素

vector string 和 deque插入元素会使得所有的迭代器,引用和指针失效,。这是因为整个对象存储空间的重新分配。同时,这样的操作也会很慢。可以使用返回值来更新迭代器.

  1. 插入元素时都是插入在迭代器之前的
  2. insert返回指向新元素的迭代器。
  3. emplace是一个新操作,无需新建元素的对象再压进去,可以直接在容器管理的内存空间当中直接创建对象。这个操作甚至还可以调用默认构造函数。

适配器暂时没看太懂,之后再回来看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值