C++ STL标准模板库的总结学习。文章中对于vertor动态数组的比较常见用法进行总结。
复习时间 2021-07-30
- 匿名对象的使用
- swap实际是交换地址-可以用来缩小容量
- resize 缩小不了容量,可以减少元素个数 或者填充
- 单口容器 和 动态增长的方式
- 初始化的方式
文章目录
1 vector 单口容器的特性
- vertor 是动态数组,连续内存空间,具有随机存取效率高的有点。(补充 一般可以【】下标访问的都是随机存取)
- vector是单口容器,在队尾插入和删除效率高,在指定位置插入会导致数据移动,效率低
2 vertor实现动态增长的原理(重要)
当vector空间满的时候,再当插入新元素的时候,vector会重新申请一块更大的内存空间,将原空间数据拷贝到新的内存空间,然后释放旧的内存空间,再将新元素插入到新空间中,以此可以看出vector的空间动态增长效率低。
3 vector 初始化 (包括数组的方式 )
1 采用动态模板实现,默认构造函数。常见格式 类型<类型> 实例类名称
2 vector v1(arr,arr+sizeof(arr)/sizeof(int)); 这是最常用的方式 传入起始地址 和最后元素地址的后一个
void ceshi(vector<int> v)
{
for (vector<int>::iterator it = v.begin(); it != v.end(); it++)
{
cout << *it << endl;
}
}
//四种方式 1
vector<int > v;
vector<int > v;
int arr[] = {
1,2,3,4,5,6 };
//2 最常用
vector<int> v1(arr,arr+sizeof(arr)/sizeof(int));
//3
vector<int> v2(v1.begin(), v1.end());
//4
vector<int> v3(v2);
ceshi(v1);
ceshi(v2);
ceshi(v3);