C++ STL笔记三:vector容器;vector构造函数;vector赋值;vector容量和大小;vector插入和删除;vector数据存取;vector互换容器;vector预留空间。

本文主要介绍了C++中vector容器的相关知识。它与数组相似但可动态拓展,前端封闭,迭代器支持随机访问。详细阐述了其构造函数、赋值操作、容量和大小、插入和删除、元素存取、互换元素及预留空间等功能及对应函数原型,还提及了内存压缩技巧。

vector容器概述 

vector数据结构和数组非常相似,也称为单端数组

vector与普通数组的区别:数组是静态空间,而vector可以动态拓展

  • 数组静态空间:数组在声明时即指定了大小。无法再改变。
  • vector动态拓展:并不是在原空间之后续接新空间,而是找更大的内存空间,然后将原数据拷贝到新空间中,释放原空间。
  • 动态拓展机制类似于C#种的ArrayList的Capacity拓展,当空间不足时,自动开辟。ArrayList会自动翻倍,但是vector不会翻倍,他会增加当前容量的一半。
vector<int> v1;

cout << "v1初始化的容量:" << v1.capacity() << endl;
for (int i = 0; i < 30; i++)
{
	v1.push_back(i);
	cout << "v1加入" << i << "之后的容量为:" << v1.capacity() << endl;
}

输出: 

v1初始化的容量:0
v1加入0之后的容量为:1
v1加入1之后的容量为:2
v1加入2之后的容量为:3
v1加入3之后的容量为:4
v1加入4之后的容量为:6
v1加入5之后的容量为:6
v1加入6之后的容量为:9
v1加入7之后的容量为:9
v1加入8之后的容量为:9
v1加入9之后的容量为:13
v1加入10之后的容量为:13
v1加入11之后的容量为:13
v1加入12之后的容量为:13
v1加入13之后的容量为:19
v1加入14之后的容量为:19
v1加入15之后的容量为:19
v1加入16之后的容量为:19
v1加入17之后的容量为:19
v1加入18之后的容量为:19
v1加入19之后的容量为:28
v1加入20之后的容量为:28
v1加入21之后的容量为:28
v1加入22之后的容量为:28
v1加入23之后的容量为:28
v1加入24之后的容量为:28
v1加入25之后的容量为:28
v1加入26之后的容量为:28
v1加入27之后的容量为:28
v1加入28之后的容量为:42
v1加入29之后的容量为:42

容量扩增为当前容量的一半,1,2, 3,4, 6, 9, 13, 19, 28, 42。每次增加的都是前一刻的一半。 

  • vector通常,前端封闭,不允许前端插入,只允许尾插和尾删法。push_back()和pop_back()。
  • front()代表容器中的第一个元素。back()是容器中最后一个元素
  • vector中有几个迭代器:
    • 常用的是v.begin():代表的是容器中的第一个元素的位置(迭代器指向第一个元素)。
    • v.end():指向容器中最后一个元素的下一个位置。
    • v.rbegin():指向容器中的最后一个元素,也就是从右边数第一个元素。
    • v.rend():指向第一个元素的前一个位置。从右侧数最后一个,即第一个。
  • 还有其他接口,比如:插入insert()以及删除erase()等。
  • vector容器的迭代器是支持随机访问的迭代器。最强悍的迭代器:跳跃式访问。


vector构造函数

函数原型:

  • vector<T> v;                      &nbs
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值