CPP 容器排序方法

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: CPP 容器排序方法

vector

 static bool cmp(const int &a, const int &b )
 {
     return a > b;
 }
vector<int> nums;
sort(nums.begin(),nums.end(),cmp);

map

无法直接排序,转换成pair的vector

    static bool cmp(const pair<int,int>&a, const pair<int,int>&b )
    {
        return a.second > b.second;
        //return a.first > b.first;
    }
    unordered_map<int,int> my_map;
    vector<pair<int,int>> tmp(my_map.begin(),my_map.end()); 
    sort(tmp.begin(),tmp.end(),cmp);
};

set

set容器默认排序规则为从小到大

利用仿函数,可以改变排序规则

#include <iostream>
using namespace std;
#include <set>
class mycompare
{
public:
    bool operator()(int v1,int v2){
        return v1>v2;
    }
};
void test01()
{
    set<int> s1;
    s1.insert(1);
    s1.insert(4);
    s1.insert(2);
    s1.insert(5);
    s1.insert(3);
    for(set<int>::iterator it=s1.begin();it!=s1.end();it++){
        cout<<*it<<" ";
    }
    cout<<endl;
    //1 2 3 4 5 默认从小到大排序
    //利用仿函数
    set<int,mycompare> s2;
    s2.insert(1);
    s2.insert(4);
    s2.insert(2);
    s2.insert(5);
    s2.insert(3);
    for(set<int>::iterator it=s2.begin();it!=s2.end();it++){
        cout<<*it<<" ";
    }
    cout<<endl;
    //5 4 3 2 1
}
int main()
{
    test01();
    return 0;
}
相关文章
|
1月前
|
安全 Java 编译器
容器【泛型类、泛型接口、泛型方法 、泛型方法与可变参数 】(一)-全面详解(学习总结---从入门到深化)
容器【泛型类、泛型接口、泛型方法 、泛型方法与可变参数 】(一)-全面详解(学习总结---从入门到深化)
33 0
|
1月前
|
Linux Shell 虚拟化
linux 部署docker容器虚拟化平台(二)--------docker 镜像制作方法
linux 部署docker容器虚拟化平台(二)--------docker 镜像制作方法
41 0
|
1月前
|
存储 C++ 容器
set容器一自定义数据类型指定排序规则讲解
set容器一自定义数据类型指定排序规则讲解
41 1
|
1月前
|
存储 C++ 容器
set容器-内置类型指定排序规则讲解
set容器-内置类型指定排序规则讲解
25 0
|
1月前
|
搜索推荐 算法 C++
list容器-排序案例讲解
list容器-排序案例讲解
12 0
|
1月前
|
算法 C++ 容器
list容器-反转和排序讲解39
list容器-反转和排序讲解39
25 0
|
1月前
|
算法 C++ 开发者
【C++STL基础入门】排序和遍历容器
【C++STL基础入门】排序和遍历容器
|
1月前
|
C++ 容器
【C++】STL容器——探究List与Vector在使用sort函数排序的区别(14)
【C++】STL容器——探究List与Vector在使用sort函数排序的区别(14)
|
1月前
|
C++ 容器
[C++] 多个点存入到容器的方法
[C++] 多个点存入到容器的方法
21 0
|
9月前
|
前端开发 容器
css实现容器垂直水平居中的七中方法
css实现容器垂直水平居中的七中方法
47 0