当前位置: 首页 > news >正文

C++ STL stable_sort用法

一:功能

      对区间内元素进行排序,保证相等元素的顺序(稳定排序)

二:用法

#include <iostream>struct Record {std::string label;int rank;
};int main() {std::vector<Record> data {{"q", 1}, {"f", 1}, {"c", 2}, {"a", 1}, {"d", 3}};std::ranges::stable_sort(data, {}, &Record::label);    std::ranges::stable_sort(data, {}, &Record::rank);for (auto &v : data) {std::cout << v.label << "-" << v.rank << " ";}std::cout << "\n";
}
#include <algorithm>
#include <array>
#include <iostream>
#include <string>
#include <vector>struct Employee
{int age;std::string name; // Does not participate in comparisons
};bool operator<(const Employee& lhs, const Employee& rhs)
{return lhs.age < rhs.age;
}#if __cpp_lib_constexpr_algorithms >= 202306L
consteval auto get_sorted()
{auto v = std::array{3, 1, 4, 1, 5, 9};std::stable_sort(v.begin(), v.end());return v;
}
static_assert(std::ranges::is_sorted(get_sorted()));
#endifint main()
{std::vector<Employee> v{{108, "Zaphod"}, {32, "Arthur"}, {108, "Ford"}};std::stable_sort(v.begin(), v.end());for (const Employee& e : v)std::cout << e.age << ", " << e.name << '\n';
}

http://www.lryc.cn/news/400379.html

相关文章:

  • YOLO v8进行目标检测的遇到的bug小结
  • FastAPI -- 第二弹(响应模型、状态码、路由APIRouter、后台任务BackgroundTasks)
  • 案例 | 人大金仓助力山西政务服务核心业务系统实现全栈国产化升级改造
  • 如何用python写接口
  • 轻量级可扩展易航网址引导系统源码V2.45
  • 解决ESLint和Prettier冲突的问题
  • C判断一个点在三角形上
  • 物业系统自主研发接口测试框架
  • 手机和电脑通过TCP传输
  • Git 在commit后,撤销commit
  • 多模态大模型 - MM1
  • FPGA设计之跨时钟域(CDC)设计篇(2)----如何科学地设计复位信号?
  • GPS北斗标准时钟同步服务器结构是什么?安徽京准
  • 9.5 栅格图层符号化多波段彩色渲染
  • 力扣第九题
  • 鞭炮插画:成都亚恒丰创教育科技有限公司
  • python 循环
  • 映美精黑白相机IFrameQueueBuffer转halcon的HObject
  • Linux的load(负载)
  • 杜比全景声——空间音频技术
  • C 语言指针进阶
  • SpringBootWeb 篇-入门了解 Swagger 的具体使用
  • Python面试题:如何在 Python 中处理大数据集?
  • C++:入门基础
  • 微信小游戏 彩色试管 倒水游戏 逻辑 (二)
  • 【链表】算法题(一) ---- 力扣 / 牛客
  • Linux系统之部署盖楼小游戏
  • “金山-讯飞”杯2024年武汉理工大学程序设计竞赛 A. Mobiusp败走***(思维题-点双连通分量、连通性)
  • 【机器翻译】基于术语词典干预的机器翻译挑战赛
  • 推荐系统:从协同过滤到深度学习