vector :一种动态数组,基本数组的类模板。
- 使用前需要加头文件 #include<vector>
- 包括所有基本数据类型,也可以使用vector类型
vector<vector<int>> a(10);
vector 的赋值与遍历
- 类似基本数组赋值
vector<int> a={1, 2, 3};
for(int i = 0; i < a.size(); i++){
cout << a[i] << " ";
}
- 通过push_back(int x) 赋值,对应的pop_back ( int x )弹出对应的值
- 通过insert((起始位置 position),int x) 赋值
vector<int> a;
a.insert(a.begin(), 10);
a.push_back(100);
for(int i = 0; i < a.size(); i++){
cout << a[i] << " ";
}
- 通过迭代器访问(指针),因此访问前需要加( * )
vector<int> ::iterator it;
for(it=a.begin();it!=a.end();it++){
cout<<*it<<" ";
}
vector 的一些常用成员函数
vector <int> a;
- a.begin() // a 的起始地址
- a.end() // a 的最后一个元素的后一位地址
- a.size() // a 的长度
- a.clear() // 清空 a 的size 但是空间并没有释放
- a.erase () //删除a 的指定元素,如果是区间,左必右开
- a.empty() //判断a 是否为空,返回布尔类型值
- a.sort() //字典序排序
- a.reverse() //倒序打印a 元素
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main(){
int arr[]={1, 3, 5, 7, 9, 2, 4, 6, 8, 10};
vector<int> a(arr, arr+10);
a.erase(a.begin(), a.begin()+1);//删除首元素,区间左闭右开
sort(a.begin(), a.end());//排序
reverse(a.begin(), a.end());//反转
cout << "a.empty:" << a.empty() << endl;//输出a.empty()的值
a.clear();//清空 a
cout<< "a.size" << a.size() << endl;//输出a 的大小
vector <int> ::iterator it;
for(it = a.begin(); it != a.end(); it++){
cout << *it << " ";
}
return 0;
}