vector 二维数组的push_back,stl算法库中的sort排序,vector insert 用法

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三个元素。
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值