vector常用用法

目录

一.创建数组

1.一维数组

2.二维数组

3.和pair混用

二.遍历

1.for循环遍历

2.迭代器遍历

 三.一元数据操作

1.查找数据

2.推入数据

3.插入数据 

4.删除数据

5.数据倒置 

6.排序

四.数组大小设置

1.改变数组大小

五.二元数据操作

1.数组数据交换

2.去重

3.求交

4.求并


一.创建数组

1.一维数组

vector<int>a;

2.二维数组

vector<vector<int>>b;

3.和pair混用

vector<pair<int, int>>c;

二.遍历

1.for循环遍历

for (int e = 0; e < a.size(); e++) {
		cout << a[e];
	}
for (auto i : a) {
		cout << i;
	}

2.迭代器遍历

vector<int>::iterator it;
	for (it = a.begin(); it != a.end(); it++) {
		cout << *it;
	}
copy(a.begin(), a.end(), ostream_iterator<int>{cout, " "});

 三.一元数据操作

1.查找数据

find(数组的头地址, 数组的尾地址, 要找的数)
 
find(nums.begin(), nums.end(), 数据)
//查找数字3的位置
auto x = find(a.begin(), a.end(), 3);
//或
vector<int>::iterator it=find(a.begin(), a.end(), 3);

2.推入数据

数据会被添加至最后一个数据的后面

a.push_back(1);

3.插入数据 

insert(a.begin()+x,添加的数据);

insert(a.end()-x,添加的数据);

以后的格式于此相似;

1.在012345中0和1之间插入9

a.insert(a.begin() + 1, 9);
a.insert(a.end() - 5, 9);

4.删除数据

1.在012345中0和1之间删除3

//查找数字3的位置
auto x = find(a.begin(), a.end(), 3);
//删除
a.erase(x);

2.在012345中0和1之间删除3-5

vector<int>::iterator x = find(a.begin(), a.end(), 3);
vector<int>::iterator x2 = find(a.begin(), a.end(), 5);
a.erase(x,x2+1);
//注意后面要加一,不然只能删到5的前一位

5.数据倒置 

1.把数组a中的数据倒置(例子:1234变成4321);

reverse(a.begin(),a.end());

6.排序

sort(a.begin(),a.end());

四.数组大小设置

1.改变数组大小

//把数组大小改变至100
a.resize(100);

五.二元数据操作

1.数组数据交换

vector<int>b;
a.swap(b);

2.去重

vector<int> quchong(vector<int> v) {
	vector<int>::iterator it;
	sort(v.begin(), v.end());
	it = unique(v.begin(), v.end());
	if (it != v.end()) {
		v.erase(it, v.end());
	}
	return v;
}

3.求交

vector<int> n(vector<int> v1, vector<int> v2) {
	vector<int> v;
	sort(v1.begin(), v1.end());
	sort(v2.begin(), v2.end());
	set_intersection(v1.begin(), v1.end(), v2.begin(), v2.end(), back_inserter(v)); 
	return v;
}

4.求并

vector<int> u(vector<int> v1, vector<int> v2) {
	vector<int> v;
	sort(v1.begin(), v1.end());
	sort(v2.begin(), v2.end());
	set_union(v1.begin(), v1.end(), v2.begin(), v2.end(), back_inserter(v));
	return v;
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

唏嘘南溪

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

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

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

打赏作者

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

抵扣说明:

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

余额充值