C++总复习--7--C++程序设计--STL
C++总复习--7--C++程序设计--STL
1.STL-容器(容器的使用简单,底层实现,适用场景)
(1)vector
(2)list
(3)deque
(4)set/multiset
(5) map/multimap
(6) stack.queue/priority.queue
2.STL-函数对象
(1)一元函数对象
(2)二元函数对象
less、less_equa、greater、greater_equal
3.迭代器
(1)iterator
(2) const_iterator
(3) reverse_iterator
4.空间配置器
(1)一级空间配置器
(2)二级空间配置器
1.容器类(数据结构)
1.顺序容器
vector list deque
2.关联容器
set multiset map multimap
3.容器适配器
stack queue priority_queue
Vector 数组
1.简单操作
push_back insert
pop_bash erase
2.底层实现
数组 动态开辟
3.扩容方式
以倍数的形式开辟更大的内存
旧的数据拷贝到新的内存中
释放旧的内存
指向新的内存并调整总大小
4.特点
尾部快速的插入或者删除
直接访问元素
函数对象 仿函数
以对象的形式存在,做函数调用所做的事情
Operator()调用运算符的重载 一元函数 二元函数
摆脱了对接口名称的依赖
写一个函数来实现排序,针对容器的
#include <functional> //函数对象库
Vector容器是数组构成,随机访问迭代器
(1)默认的构造(2)count的构造(3)count,val的构造(4)区间的构造
list容器
是双向链表,双向迭代器,特点:任意位置插入删除,访问数据O(n)
内存不一定连续 所以不能+i
list类中提高类成员方法进行排序
list直接调用sort 如:lst1.sort()
空间适配器
对象的生成
- 开辟空间 allocate
- 调用构造函数 construct
对象的销毁
- 调用析构函数 destroy
- 释放空间 deallocate
一级空间配置器 >128 bytes 足够大
Malloc free
二级空间配置器 <= 128bytes 足够小
自由链表的内存池
二级算出位置: (Size - 1)/8,比如:126怎么分配?