目录
一.创建数组
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;
}