zoukankan      html  css  js  c++  java
  • 标准库中 vector list等排序

    1、list自带有排序函数sort();可以定义自己的排序规则,如:

    struct stTest

    {

      int count;

      wstring str;

    };

    bool SortByNum(const stTest& left, const stTest& right)
    {

      return left.count > right.count ;
    }

    std::list<stTest> lstTest;

    lstTest.sort(SortByNum);

     

    2、vector 没有自己的排序函数,所以要借重标准库的排序函数std::sort

    vector<stTest> vecTest;

    std::sort(vecTest.begin(), vecTest.end(), SortByNum);

    或使用lamda表达式

    std::sort(vecTest.begin(), vecTest.end(), [](const stTest& left, const stTest& right){return left.count > right.count ;});

     

    3、关联容器map、set会自动排序;如果key是自定义的结构体或类,可以重载 operator< ,以按照自己的要求排序。如:

    struct stTest

    {

      int count;

      wstring str;

      bool operator<(const stTest& other) const{

        return count < other.count;

      }

    };

    map<stTest, wstring> myMap; //添加进去的元素会自动按照stTest的<规则排序

  • 相关阅读:
    Flink开发中的问题
    怎么确定一个Flink job的资源
    Flink统计日活
    Flink读取resource资源文件
    Spark-6-如何缓解消除数据倾斜
    Spark-5-如何定位导致数据倾斜的代码
    Spark-4-为何要处理数据倾斜
    集合遍历删除中遇到问题
    1206
    1205
  • 原文地址:https://www.cnblogs.com/pjl1119/p/7122238.html
Copyright © 2011-2022 走看看