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

c++ std::pair

测试std::pair, 代码如下:

#include <algorithm>// pair返回多个数据。 还可以嵌套, 如pair<int, pair<int, string>>
pair<int, int> getMinAndMax(int a, int b) {int min = a < b ? a : b;int max = a > b ? a : b;return make_pair(min, max);
}void testPair() {int a = 9527, b = 1605;pair<int, int> res = getMinAndMax(a, b);cout << "min: " << res.first << ", max: " << res.second << endl;// pair可以作为map的元素std::map<string, int> peopleKungFus;peopleKungFus.insert(std::pair<string, int>("段正淳", 75));  // 显式构造 pairpeopleKungFus.insert(make_pair("田伯光", 85));           // 使用 make_pairpeopleKungFus.emplace("南海神尼", 60);  // 直接构造for (const auto& pair : peopleKungFus) { // 按照key的排序顺序升序排列std::cout << "[" << pair.first << ", " << pair.second  << "] ";}cout << endl;// 将多个属性组合为 pair 后存入 vector 或 set,可实现多属性排序vector<pair<string, int>> kungFuScores = { {"挤奶龙抓手", 88}, {"葵花点穴手", 80}, {"一阳指", 99} };sort(kungFuScores.begin(), kungFuScores.end()); // 默认按 string(功夫名) 升序排序for (const auto& pair : kungFuScores) {std::cout << "[" << pair.first << ", " << pair.second << "] ";}cout << endl;sort(kungFuScores.begin(), kungFuScores.end(),[](const auto& a, const auto& b) {return a.second > b.second; // 按 int(功夫武力值) 降序排序});cout << "按照功夫武力值降序排列为:";for (const auto& pair : kungFuScores) {std::cout << "[" << pair.first << ", " << pair.second << "] ";}cout << endl;// 与 STL 算法协同工作, 这里是筛选数据,查找满足条件的第一个数.  使用find_if函数需包含头文件algorithmauto it = find_if(kungFuScores.begin(), kungFuScores.end(),[](const pair<string, int>& p) {return p.second > 80;});if (it != kungFuScores.end()) {cout << "武力值大于80的最高的武功是:" << it->first << ", 武力值为:" << it->second << endl;}else {cout << "未找到满足条件的数据" << endl;}cout << "武功武力值大于80的有:";it = kungFuScores.begin();for (;(it = find_if(it, kungFuScores.end(),[](const auto& p) { return p.second > 80; })) != kungFuScores.end();) {cout << it->first << ":" << it->second << " ";++it; // 跳过已处理项}cout << endl;
}

打印:

ok.

http://www.xdnf.cn/news/12753.html

相关文章:

  • 树莓派超全系列教程文档--(58)通过网络启动树莓派
  • 正弦积分函数——分析傅里叶级数在间断点的行为——吉布斯现象
  • 大型语言模型(LLM)面试问题集
  • 75Qt窗口_Qt窗口概览
  • 发送文件脚本源码版本
  • 使用vs2022中自带的sqlserver,并在docker中安装mssql-server 并配置相关信息
  • 《前端面试题:JavaScript 作用域深度解析》
  • NumPy数组访问
  • 【JavaSE】绘图与事件入门学习笔记
  • leetcode Top100 238. 除自身以外数组的乘积|数组系列
  • 批量修改文件夹名 修改文件夹名
  • Spring Cloud Alibaba Seata安装+微服务实战
  • 【第九篇】 SpringBoot测试补充篇
  • Zustand 第二章(状态处理)
  • 【设计模式】2.策略模式
  • 【网站建设】不同类型网站如何选择服务器?建站项目实战总结
  • AI智能体|扣子(Coze)搭建【公众号对标文章采集拆解】工作流
  • DeepSeek11-Ollama + Open WebUI 搭建本地 RAG 知识库全流程指南
  • windows10下搭建nfs服务器
  • 【分布式】分布式ID介绍和实现方案总结
  • 力扣算法题1
  • Vue部署到Nginx上及问题解决
  • 深入理解 React Hooks
  • 通过css实现正方体效果
  • 【免费数据】2005-2019年我国272个地级市的旅游竞争力多指标数据(33个指标)
  • C++11 右值引用
  • Pandas-如何正确将两张数据表进行合并
  • 自定义protoc-gen-go生成Go结构体,统一字段命名与JSON标签风格
  • 【Zephyr 系列 15】构建企业级 BLE 模块通用框架:驱动 + 事件 + 状态机 + 低功耗全栈设计
  • github开源协议选择