第九章 顺序容器

第九章 顺序容器

顺序容器概述

顺序容器类型

  • string 和 vector 将元素保存在连续的内存空间中,随机访问。
  • list 、forward_list 是链表,插入删除操作 O(1) ,顺序访问,额外内存开销也很大。
  • deque 支持快速随机访问,首位删除插入效率高。
  • array 是固定大小的数组,array不支持添加和删除元素以及改变容器大小的操作。
  • forward_ list 的设计目标是达到与最好的手写的单向链表数据结构相当的性能。因此,forward_list 没有 size() 操作。

容器库概览

容器操作

在这里插入图片描述

在这里插入图片描述

容器初始化

  • 只有顺序容器的构造函数才接受大小参数,关联容器并不支持。
  • 默认构造的 array 是非空的,其他容器默认构造的是空的。
  • 与其他容器一样, array 也要求初始值的类型必须与要创建的容器类型相同。此外, array 还要求元素类型和大小也都一样。

容器赋值运算

在这里插入图片描述

swap : 除array外,swap不对任何元素进行拷贝、删除或插入操作,只是交换其数据结构,但是在array中会真正交换他们的元素。

在这里插入图片描述

emplace

调用 emplace 成员函数时,将参数传递给元素类型的构造函数。emplace 成员使用这些参数在容器管理的内存空间中直接构造元素。

访问元素

在这里插入图片描述

删除元素

在这里插入图片描述

forward_list : 单链表,不能直接获取前驱,所以无前插操作,不支持 back() , size() , pop_back() 等操作。了解底层结构就能弄清楚各种容器的操作。

在这里插入图片描述

**向容器中添加元素和从容器中删除元素的操作可能会使指向容器元素的指针、引用或迭代器失效。一个失效的指针、引用或迭代器将不再表示任何元素。**根据结构的不同插入删除的影响也不一样,待到深入了解源码后应该就知道了。

string

在这里插入图片描述

在这里插入图片描述

find操作

在这里插入图片描述

在这里插入图片描述

string 和 数值之间的转换

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值