vector容器常用操作

1、vector构造函数
vector<t> v;//采用模板类实现,默认构造函数
vector(v.begin(),v.end());//将[begin(),end()]区间的元素拷贝给本身
vector(n,elem);//将n个elem拷贝给本身
vector(const vector &vec);//拷贝构造函数</t>

2、vector常用的赋值操作
assign(beg,end);//将【beg,end)区间的数据拷贝赋值给本身;
assign(n,elem);//将n个elem拷贝给本身
swap(vec);//将vec与本身元素互换

3.vector大小操作
size();
empty();
resize(int num);
resize(int num,elem);
capacity();//容器的容量
reserve(int len);//容量预留len个元素长度,预留位置不初始化,元素不可访问;

4、vector存取操作
at(int idx);
operator[];
front();//返回容器第一个元素
back();//返回容器最后一个元素

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

代码如下:

#include<iostream>
#include<vector>
using namespace std;

//vector初始化
void test01()
{
	vector<int> v;//默认构造,空的vector容器
	vector<int> v2(10, 5);//带参数构造函数
	vector<int> v3(v2.begin(), v2.end());
	vector<int> v4(v3);//拷贝构造
	
}

//vector容器的大小操作
void test02()
{
	int arr[]{6, 8, 3, 9	};
	vector<int> v(arr, arr + sizeof(arr) / sizeof(int));
	cout << "容量" << v.capacity() << endl;
	cout << "大小" << v.size() << endl;

	if (v.empty())
	{
		cout<< "容器为空" << endl;

	}

}
//vector存取操作
void test03()
{
	int arr[]{6, 8, 3, 9	};
	vector<int> v(arr, arr + sizeof(arr) / sizeof(int));

	try
	{
		cout << v[100] << endl;
		cout << v.at[100] << endl;
	}
	catch (...){
		cout << "数组访问越界" << endl;
	}
	cout << v.front << endl;
	cout << v.back << endl;
}
void print(vector<int>& v)
{
	for (vector<int>::iterator it = v.begin; it != v.end; it++)
	{
		cout << *it << " ";
	}
}
//vector容器的插入和删除
void test04()
{
	int arr[]{6, 8, 3, 9	};
	vector<int> v(arr, arr + sizeof(arr) / sizeof(int));
	v.insert(v.begin(), 100);//头部插入100
	v.push_back(100);//尾插法

	vector<int>::iterator pStart = v.begin();
	vector<int>::iterator pEnd = v.end();

	while (pStart!=pEnd)
	{
		cout << *pStart << " ";
		pStart++;
	}
	cout << endl;
	

	//删除
	int val = v.back();
	cout << val << "被删除"<<endl;
	v.pop_back;
	for (vector<int>::iterator it = v.begin(); it != v.end(); it++)
	{
		cout << *it << " ";
	}
	cout << endl;
	//指定位置删除
	v.erase(v.begin());
	for (vector<int>::iterator it = v.begin(); it != v.end(); it++)
	{
		cout << *it << " ";
	}
	//区间删除
	v.erase(v.begin(), v.end);
	//v.clear();全部删除
	cout << "size" << v.size() << endl;
}

int main()
{
	vector<int> v1;//默认构造,空的vextor容器
	vector<int> v2;
	for (int i = 0; i < 5; i++)
	{
		v1.push_back(i);

	}
	for (int i = 6; i < 10; i++)
	{
		v2.push_back(i);

	}
	print(v1);
	print(v2);
	//v1和v2交换
	v1.swap(v2);
	
	//swap小技巧
	vector<int> v;
	v.push_back(2);
	v.push_back(3);
	v.resize(100);

	cout << "容量" << v.capacity() << endl;
	cout << "大小" << v.size() << endl;
	v.clear;//容量不变,大小清零	
	v.push_back(2);
	v.push_back(3);
	
	cout << "容量" << v.capacity() << endl;
	cout << "大小" << v.size() << endl;

	vector<int>(v).swap(v);//v的空间跑到对象中,使用完释放掉空间
	cout << "容量" << v.capacity() << endl;
	cout << "大小" << v.size() << endl;
	return EXIT_SUCCESS;
}


#offer比较##求面经##面经##笔试题目##实习##春招#
全部评论
😃
点赞 回复
分享
发布于 2020-02-28 16:39
👍👍
点赞 回复
分享
发布于 2022-04-20 22:10
联想
校招火热招聘中
官网直投

相关推荐

2 2 评论
分享
牛客网
牛客企业服务