本文主要是介绍C++ Primer 5th笔记(9)chapter9 顺序容器 vector 容器的自增长 容器适配器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. vector 容器的自增长:当插入元素当存储空间不足时,vector 必须重新分配存储空间(比如将新空间大小增加为当前大小的2倍)
管理容量的成员函数
操作 | 定义 |
---|---|
c.shrink_to_fit() | 将capacity()减少到和size()相同大小。 |
c.capacity() | 不重新分配内存空间的话,c可以保存多少个元素 |
c.reverse(n) | 分配至少能容纳n个元素的内存空间 |
- shrink_to_fit只适用于vector、string和deque
- capacity和reverse只适用于vector和string。
2. 容器适配器
三种顺序容器适配器:queue,priority__queue,stack。
容器 | 默认实现 | 其他实现 |
---|---|---|
queue | deque | list或vector |
priority_queue | vector | deque |
stack | deque | list或vector |
size_type
value_type 元素类型
container_type 底层容器类型
eg.
A a; 创建一个新的空适配器,命名为a
A a(b); 创建一个名为a的新适配器,初始化为容器b的副本deque<int> deq;
stack<int> stk(deq); //从deq拷贝元素到stk
关系操作符 所有适配器都支持全部关系操作符:==、!=、<、<=、>、>=
2.1 stack栈适配器
s.empty(); //如栈为空范围true。
s.size(); //返回栈中元素个数。size_type类型。
s.pop(); //弹出栈顶。
s.top(); //返回栈顶元素。
s.push(value); //入栈。
2.2 queue和priority_queue
q.pop() //删除队首元素,但不返回。
q.front() //返回队首元素的值,不删除。
q.back() //返回队尾元素的值,不删除。只适用于queue
q.top() //返回具有最高优先级的元素值,不删除。
q.push(item) //在队尾压入一个新元素。
q.emplace(args)
这篇关于C++ Primer 5th笔记(9)chapter9 顺序容器 vector 容器的自增长 容器适配器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!