顺序类容器

顺序容器
vector deque list forward_list array string
顺序容器提供的是快速访问元素的能力。
以下的方面性能折中:
(1)向容器中添加和删除元素
(2)非顺序的访问容器中的元素的代价。
array:不支持添加和删除元素以及改变容器大小的操作。

使用swap
swap可以交换两个相同类型容器的内容。
除了array之外,交换两个容器内容的操作很快–元素本身并未交换,swap只是交换了两个容器的内部结构。意味着元素不会被移动,除了string之外,指向容器的迭代器、引用和指针在swap之后,这些元素已经属于不同的容器了。string调用swap导致迭代器、引用和指针的失效。
swap两个array会真正的交换他们的元素。指针、引用和迭代器所绑定的元素保持不变,其元素值已经与另外的array中的对应元素进行了交换。

使用insert的返回值
使用insert的返回值,可以在容器的一个特定的位置反复的插入元素。
若是在首位置反复插入,相当于调用push_front

使用emplace操作
emplace_front、emplace、emplace_back对应
push_front、insert、push_back
当调用insert、push成员函数时,将元素类型的对象传递给他们,这些对象被拷贝到容器中。
而调用emplace成员的时,则是将参数传递给元素类型的构造函数。emplace成员使用这些参数在容器管理的内存空间中直接构造元素。

管理容器的成员函数
shrik_to_fit 只是用于vector string deque
capacity和reverse只适用于vector和string
c.shrink_to_fit()请将capacity()减少到与size()相同的大小
c.capacity() 不重新分配内存的话,c可以保存多少个元素
c.reverse(n) 分配至少能够容纳n个元素的内存空间

capacity和size的区别:
size是指的是已经保存的元素的数目;capacity则是不分配的新的内存空间的前提下它可以保存多少元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值