C++二维vector容器按照指定列排序

1.编写compare函数

static bool compare(vector<int>&a,vector<int>&b)
{
    return a[1]<b[1];		//a[num]<b[num],num代表指定列
    						// < 代表升序排列
}

2.与sort函数结合

sort(intervals.begin(),intervals.end(),compare);//intervals为二维vector容器

3.例子

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

static bool compare(vector<int> &a, vector<int> &b) {
    return a[1] < b[1];
}

int main() {
    vector<vector<int>> intervals = {{1, 2},
                                     {2, 1},
                                     {1, 6},
                                     {1, 3}};
    cout << "排序前:" << endl;
    for (const auto &item:intervals) {
        for (auto item1:item) {
            cout << item1 << "\t";
        }
        cout << endl;
    }
    sort(intervals.begin(), intervals.end(), compare);
    cout << "排序后:" << endl;
    for (const auto &item:intervals) {
        for (auto item1:item) {
            cout << item1 << "\t";
        }
        cout << endl;
    }
}

结果:
在这里插入图片描述


版权声明:本文为weixin_44713619原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。