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

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.

相关文章:

  • vmware 设置 dns
  • Elasticsearch 常用操作命令整合 (cURL 版本)
  • 鸿蒙API自翻译
  • 从碳基羊驼到硅基LLaMA:开源大模型家族的生物隐喻与技术进化全景
  • Ollama部署下载Qwen3-Embedding(含0.6B、4B、8B等)向量模型和Qwen3-Reranker(含0.6B、4B、8B等)重排模型的方法
  • 【RAG召回】BM25算法示例
  • 智慧城市项目总体建设方案(Word700页+)
  • 楠溪江诗意传承:李文照笔下的山水印记
  • leetcode_56 合并区间
  • 十一.C++ 类 -- 面向对象思想
  • day50 随机函数与广播机制
  • 【西门子杯工业嵌入式-6-ADC采样基础】
  • CMake基础:gcc/g++编译选项详解
  • 结合三维基因建模与智能体技术打造工业软件无码平台
  • 2025-06-08-深度学习网络介绍(语义分割,实例分割,目标检测)
  • 什么是 Ansible 主机和组变量
  • 【数据结构】顺序表和链表详解(下)
  • C++ - string 的使用 #auto #范围for #访问及遍历操作 #容量操作 #修改操作 #其他操作 #非成员函数
  • FBRT-YOLO:面向实时航拍图像检测的轻量高效目标检测框架
  • 股指期货技术分析与短线操作方法介绍
  • 网站如何使用cdn/流量精灵官网
  • 怎么制作属于自己的网站/2024年新闻摘抄十条
  • 吉安市网站建设/免费个人网站源码
  • 做网站买域名要买几个后缀最安全/百度经验app下载
  • 一般给公司做网站怎么收费/软文投稿平台有哪些
  • 呼和浩特网站建设公司/长沙网站排名推广