相信大家都知道$C++$里有一个流弊的$STL$模板库。。
今天我们就要谈一谈这里面的一个容器:动态数组$vector$。
$vector$实际上类似于$a[]$这个东西,也就是说它重载了$[]$运算符。
使用$vector$时需要加上#include<vector>这个头文件。
定义方法:
vector<类型名> 变量名; 例如: vector<int> a; vector<char> b; vector<data> c; //data为自定义的数据类型,可以为结构体
操作方法:
a[i]; //返回动态数组中的第i个元素 a.empty(); //若动态数组为空,则返回true,否则返回false a.size(); //返回动态数组中元素的个数 a.resize(x); //修改动态数组大小为x a.push_back(x); //将x插入动态数组尾部 a.pop_back(); //删除动态数组尾部的元素 a.begin(); //返回指向动态数组头部的指针 a.end(); //返回指向动态数组尾部元素的后一个元素的指针
使用$vector$的排序模版:
#include<iostream> #include<cstdio> #include<vector> #include<algorithm> using namespace std; vector<int> a; int main() { int n; scanf("%d",&n); for(int i=0;i<n;i++) { int tmp; scanf("%d",&tmp); a.push_back(tmp); } sort(a.begin(),a.end()); for(int i=0;i<n;i++) printf("%d ",a[i]); return 0; }