《C++ Primer》--学习8

文章详细介绍了C++中vector和string对象如何增长,当需要更多内存时,它们通常会预留额外空间以避免频繁的内存分配。同时,讨论了capacity和reserve函数在管理内存中的作用。此外,文章还涉及了string的substr操作和其他修改方法,以及容器适配器如栈和队列的基本概念和限制。
摘要由CSDN通过智能技术生成

vector 对象是如何增长的

当不得不获取新的内存空间时,vector 和 string 的实现通常会分配比新的空间需求更大的内存空间,容器预留这些空间作为备用,这样就不用每次添加新元素都重新分配容器的内存空间了

管理容器的成员函数

capacity 和 reserve

capacity 操作告诉我们容器在不扩张内存空间的情况下可以容纳多少个元素

reserve 操作允许我们通知容器它应该准备保存多少个元素

 capacity 和 size

容器的 size 是指它已经保存的元素的数目,而 capacity 则是在不分配新的内存空间的前提下它最多可以保存多少元素

额外的 string 操作

构造 string 的其他方法

substr 操作

substr 操作返回一个 string,它是原始 string 的一部分或全部的拷贝。可以传递给 substr 一个可选的开始位置和计数值

 改变 string 的其他办法

 

 string 搜索操作

 compare 函数

根据 s 是等于,大于还是小于参数指定的字符串,s.compare 返回0,正数或负数

数值转换

 容器适配器

 定义一个适配器

每个适配器都定义两个构造函数,默认构造函数创建一个空对象,接受一个容器的构造函数拷贝该容器来初始化适配器。我们可以在创建一个适配器时将一个命名的顺序容器作为第二个类型参数,来重载默认容器类型

 对于一个给定的适配器,可以使用哪些容器是有限制的。所有适配器都要求容器具有添加和删除元素的能力,因此,适配器不能构造在 array 之上。类似的,也不能用 forward_list 来构造适配器

栈适配器

队列适配器

queue 和 priority_queue 适配器定义在 queue 头文件中

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值