0
点赞
收藏
分享

微信扫一扫

C++容器-vector

吃面多放酱 2022-03-22 阅读 194
c++

一、vector基本概念

vector数据结构与数组十分相似,也称为单端数组。普通数组是静态空间,而vector可以动态扩展(并非在元空间后续接新空间,而是寻找更大的内存空间,将原数据拷贝到新空间,再释放原空间)。
在这里插入图片描述
vector容器的迭代器是支持随机访问的迭代器。

1、vector的构造
主要由四种方式:

void test01()
{
	//默认构造,无参构造
	vector<int>v1;
	for (int i = 0; i < 10; i++)
	{
		v1.push_back(i);
	}

	//通过区间方式进行构造
	vector<int>v2(v1.begin(), v1.end());

	//n个elem方式构造
	vector<int>v3(10, 100); //10个100

	//拷贝构造
	vector<int>v4(v3);
}

二、vector赋值操作

1、=赋值

v2 = v1;

2、assign赋值

v3.assign(v1.begin(), v1.end()); / v4.assign(10, 100)

三、vector容量和大小

empty() //判断容器是否为空
capacity() //容器的容量
size() //返回容器中元素个数
resize(int num) //重新制定容器的长度为num,如果变长,则以默认值来填充新位置;如果变短,则超出元素删除。
resize(int num , elem) //以elem值来填充新位置

四、vector插入和删除

push_back(ele); //尾部插入元素
pop_back(); //删除最后一个元素
insert(const_iterator pos, ele); //迭代器指向位置pos插入元素ele
insert(const_iterator pos, int count, ele); //迭代器指向位置pos插入count个元素ele
erase(const_iterator pos); //删除迭代器指向的元素
erase(const_iterator start, const_iterator end); //删除迭代器从start到end之间的元素
clear(); //删除容器中所有元素

同时,如果想在指定位置插入元素,用v.begin()+n来指定位置即可。

五、vector数据存取

at(int idx);  //返回索引idx所指的数据
operator[]; //返回索引idx所指的数据
front(); //返回容器中第一个数据元素
back(); //返回容器中最后一个数据元素

六、vector互换容器

swap(vec); //将vec与本身元素互换

七、vector预留空间

作用:减少vector在动态扩展时的扩展次数

reverse(int len); //容器预留len个元素长度,预留位置不初始化,元素不可访问
举报

相关推荐

0 条评论