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

STL学习-关联容器-pair数对

一.pair数对

1.pair介绍

pair是一个模板类,使用时引用<utility>文件

#include<utility>

pair可将两个value处理为一个元素。C++标准库内多处用到了这个结构。尤其容器map、unordered map和unordered multimap就是使用pair来管理其内部元素(key value),任何函数如果需返回两个 value,也需要用到pair,例如minmax()。


pair是定义在std中的struct,其成员是公有的(public)

namespace std(
template <typename T1,typename T2>
struct pair {
T1 first;//成员1
T2 second;//成员2
}
}

2.pair操作函数

举例:

#include
using namespace std;
int main()
{
pair<int,double>p1;//创建一个空的pair
//注意访问first和second时没有()
cout<<"p1=("<< p1.first <<","<< p1.second <<")"<< endl;

pair<int,double>p2(10,23.4);//创建一个pair,数据为(10,23.4)
cout<<"p2=("<< p2.first<<","<< p2.second << ")"<< endl;

pair<int,double>p3(p2);//通过p2拷贝构造一个p3
p3.first = 100;
cout<<"p3=("<< p3.first<<","<< p3.second <<")”<< endl;

p1 = p3;//把p3赋值给p1
cout<<“p1 = p3后"<< endl;
cout<<“p1=("<< p1.first <<","<< p1.second <<")"<< endl;

p3 = make pair(100,200);
cout<<"p3 = make_pair(100,200)后"<< endl;
//通过get访问p3的成员
cout <<“p3=("<< get<0>(p3)<<","<<get<1>(p3)<< endl;

return 0;
}

找出数组的最小值和最大值

#include <utility>
using namespace std;
pair<int,int>MinMax(int* arr,int len)//找到数组的最小值和最大值
{
int min = arr[0];//最小值
int max = arr[0];//最大值
for(int i=1;i<len;i++)
{
if(arr[i]< min)
min = arr[i];

if(arr[i]> max)
max= arr[i];
}
return make pair(min,max);
}

int main()
{
int arr[]={3,1,8,9,34,2,67,5,70,12,34,65,99,20};
auto p=MinMax(arr,sizeof(arr)/sizeof(arr[0]));
cout<<"最小值:"<< p.first<<",最大值:"<< p.second << endl;

return 0;
}


http://www.kler.cn/a/378838.html

相关文章:

  • WordPress之generatepress主题安装
  • 【OpenGL】vs中glsl高亮显示插件
  • Rust 力扣 - 2461. 长度为 K 子数组中的最大和
  • python 获取鼠标点击的实时位置案例
  • 练习LabVIEW第三十七题
  • 2024版红娘金媒10.3婚恋相亲系统源码小程序(亲测)
  • 新老项目不同node版本,使用nvm控制node版本切换(mac、window)
  • Excel菜单选项无法点击?两种原因及解决方法全解析
  • 《Python 练习一百题:提升编程技能的宝藏》
  • 重生之我在Java世界------学工厂设计模式
  • Transformer 架构简单理解;GPT-3.5 的架构,向量长度为 :12288;Transformer架构改进:BERT和GPT
  • git创建一个公共子模块用于不同的项目共享这一个子模块
  • JWT-混淆算法
  • 鸿蒙HarmonyOS应用开发者(基础+高级)认证
  • uniapp下载文件的方案,包括H5,App方案解决办法
  • 如何使用Python WebDriver爬取ChatGPT内容(完整教程)
  • 数据结构,问题 C: 后缀表达式
  • Java NIO 【处理消息边界】
  • 基于 Spring Boot 和 Vue 的大学生入伍管理创新系统
  • CSS中display和visibility的区别
  • pnpm install安装element-plus的版本跟package.json指定的版本不一样
  • Hive SQL 和 SQL 的区别总结(持续更新中.....)
  • UV紫外相机
  • 在 C/C++ 之中为什么应该建议使用C函数库定义的基础数值类型,而不是编译默认的关键字类型?
  • Javase——正则表达式
  • C#开发webService接口