C++动态数组vector

时间:2021-09-27 21:23:36

vector实际上类似于a[]这个东西,也就是说它重载了[]运算符。

使用vector时需要加上<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() 返回指向动态数组尾部元素的后一个元素的指针









c.clear()         移除容器中所有数据。

c.erase(pos)        删除pos位置的数据

c.erase(beg,end) 删除[beg,end)区间的数据

c.front()         传回第一个数据。

c.insert(pos,elem)  在pos位置插入一个elem拷贝


使用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;
}


文章转自http://www.cnblogs.com/YSFAC/p/5898110.html