vector详细用法介绍(附上实验代码)

1 篇文章 0 订阅

c++中vector用途广泛,其使用方法一般相对较为固定,本博客主要详细的介绍vector常用的定义以及使用方法。
从代码中理解一维和二维向量的各种定义与初始化,以及向量中常用的一些方法。

#include<iostream>
#include<vector>
#include<algorithm>

using namespace std;

void testVec() {
	/*一维向量的定义、初始化、以及常用操作*/
	//vector<type> identifier
	//vector<type> identifier(Maximum capacity)
	//vector<type> identifier(Maximum capacity,initialize value)

	vector<int> vec(5, 1);
	for(int i=0;i<vec.size();i++)cout << vec[i] << "  ";
	cout << endl;
	cout << endl;
	vector<char> vec1(5, '*');
	for (int i = 0; i < vec1.size(); i++)cout << vec1[i] << "  ";
	cout << endl;
	cout << endl;

	//通过数组对向量进行初始化
	int A[10] = { 1,2,3,4,5,6,7,8,9,10 };
	vector<int> vec4(A + 1, A + 5);
	for (vector<int>::iterator it = vec4.begin(); it != vec4.end(); it++) {
		cout << *it << " ";
	}
	cout << endl;
	cout << endl;

	vector<int> vecs;
	for (int i = 0; i < 10; i++) {
		vecs.push_back(i);
	}
	cout << "vecs反转前序列: ";
	for (vector<int>::iterator it = vecs.begin(); it != vecs.end(); it++) {
		cout << *it<< " ";
	}
	cout << endl;
	cout << endl;

	//向量反转
	reverse(vecs.begin(), vecs.end());
	cout << "vecs反转后序列: ";
	for (vector<int>::iterator it = vecs.begin(); it != vecs.end(); it++) {
		cout << *it << " ";
	}
	cout << endl;
	cout << endl;

	//排序
	sort(vecs.begin(), vecs.end());
	cout << "排序后序列: ";
	for (vector<int>::iterator it = vecs.begin(); it != vecs.end(); it++) {
		cout << *it << " ";
	}
	cout << endl;
	cout << endl;

	//删除向量中的指定元素
	for (auto it = vecs.begin(); it != vecs.end();) {
		if (5 == *it) {
			it = vecs.erase(it);  
		}
		else
			++it;
	}
	cout << "删除元素5后序列: ";
	for (vector<int>::iterator it = vecs.begin(); it != vecs.end(); it++) {
		cout << *it << " ";
	}
	cout << endl;
	cout << endl;

	//清空向量,清空后向量为空
	vecs.clear();
	cout <<"清空后vecs向量的大小为:"<< vecs.size() << endl;
	cout << endl;


	/*二维向量操作*/
	vector<vector <char>> vec2(5, vector<char>(3, '*'));
	for (int i = 0; i < 5; i++)
	{
		cout << endl;
		for(int j=0;j<3;j++)cout << vec2[i][j] << " ";
	}
	cout << endl;
	cout << endl;
	vector<vector<int>> vec3(5, vector<int>(0));
	for (int i = 0; i < 5; i++) {
		for (int j = 0; j < 5; j++) {
			vec3[i].push_back(j);
		}
	}
	for (int i = 0; i < 5; i++) {
		for (int j = 0; j < vec3[i].size(); j++) {
			cout << vec3[i][j] << " ";
		}
		cout << endl;
	}
	cout << endl;
	cout << endl;

	//动态向量的初始化
	vector<vector<int>> vecout;
	for (int i = 4; i < 9; i++) {
		vector<int> vecin;
		for(int j = 5; j < 10; j++) {
			vecin.push_back(j);
		}
		vecout.push_back(vecin);
	}
	for (int i = 0; i < 5; i++) {
		for (int j = 0; j < 5; j++) {
			cout << vecout[i][j] << " ";
		}
		cout << endl;
	}
	cout << endl;
	cout << endl;
}

上面实验的所有结果一次对应下面的实验截图
实验结果描述
vector中定义了许多方法,实验中重点介绍了一维和二维向量的定义以及赋值操作,下面对vector较为常用的方法再列举一些,方便以后忘记时回来查阅,方法的顺序按照功能相近进行排序,如下:
1.push_back 在数组的尾部加入元素
2. pop_back 与队列的pop相似,只不过此处是去除数组尾部的元素
3. at 得到对应编号的元素
4. begin 得到数组的头指针
5. end 得到数组的尾指针
6. front 得到数组头指针的引用
7. back 得到数组尾指针的引用
8. max_size 得到vector最大可以是多少,一般会得到很长的一段数字串
9. size 得到向量的元素个数
10. 10.capacity 得到当前向量分配的大小,与size有区别
11.resize 重新给向量的大小进行分配
12.clear 清空向量
13.erase 删除向量某个元素
14. reverse 向量反转
15. sort 排序
16. rbegin 反转后的开始指针,相当于原来的end-1
17. rend 反转后的结束指针,相当于原来的begin-1
18. empty 判断向量是否为空
19. swap 向量交换

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是小峰呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值