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
    点赞
  • 0
    评论
  • 3
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页

打赏

Muphyaaa

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者