1.vector 二维数组的push_back
vector<vector<int> >vec;
vector<int>array1;
for (int i=0;i<num;i++)
{
cin>>length;
for (int j=0;j<length;j++)
{
cin>>a;
array1.push_back(a);
}
array.push_back(array1);
array1.clear();
}
//先定义二维数组,在定义一个一维数组,先push_back一个一维数组,
//然后将一维数组push_back到二维数组中
2.stl算法库中的sort排序
#include<algorithm>//包含在<algorithm>里面
它有两种形式,一种有两个参数,一种有三个参数
(1)两个参数
sort的钱两个参数是起始地址和终止地址
sort(a,a+n)//表示对a[0],a[1]...a[n-1]排序,默认为升序
(2)三个参数(如是降序,必须用三个参数)
bool cmp(int a,int b){
return a>b;
}
降序排列比较函数,a>b时为true,不交换;a
sort(a+1,a+n+1,cmp)//a[1],a[2]...a[n]排序
sort对结构体进行排序:
#include <algorithm>
#include <cstdio>
using namespace std;
struct Node {
int x,y;
}p[1001];
int n;
int cmp(Node a,Node b) {
if (a.x != b.x) return a.x < b.x; //如果a.x不等于b.x,就按x从小到大排
return a.y < b.y; //如果x相等按y从小到大排
}
int main() {
scanf("%d",&n);
for (int i = 1;i <= n;i++) scanf("%d%d",&p[i].x,&p[i].y);
sort(p+1,p+n+1,cmp);
for (int i = 1;i <= n;i++) scanf("%d %d\n",p[i].x,p[i].y);
return 0;
}
3.vector insert 用法
vector<int> vec(3);
v[0]=2; //v[0]是第0个元素
v[1]=7;
v.insert(v.end(),a[1],a[3]);//在尾部插入a[1]个a[3]
vecA.insert(vecA.begin() , vecB.begin() , vecB.end() );
删除元素
删除区间内的元素
vecInt是用vector<int>声明的容器,现已包含按顺序的1,3,5,6,9元素。
vector<int>::iterator itBegin=vecInt.begin()+1;
vector<int>::iterator itEnd=vecInt.begin()+2;
vecInt.erase(itBegin,itEnd);
//此时容器vecInt包含按顺序的1,6,9三个元素。