STL--pair 数对

在这里插入图片描述

pair 数对🍗

pair是一个模板类,使用时需要引用文件

#include <utility>//通用工具

pair可将两个value处理为一个元素。C++标准库内多处用到了这个结构。尤其容器 map、unordered_map和unordered_multimap就是使用pair来管理其内部元素(key_value),任何函数如果需返回两个 value,也需要用到pair,例如minmax()。
pair是定义在std中的struct,其成员是公有的(public)。


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

操作函数🍗

pair<T1,T2> p
创建一个空的pair数对,两个成员都是T1,T2的默认值
pair<T1,T2>p(val1,val2)
创建一个pair数对,以val1和val2为其初值
pair<T1,T2>p2(p1)
利用拷贝构造创建p2
p2 = p1
把p1的值赋值给p2
make_pair(val1,val2)
返回一个由val1和val2构造的pair数对
p.first
访问p的第一个成员
p.second
访问p的第二个成员
get<0>§
等价p.first
get<1>§
等价p.second
p1 == p2
判断两个pair是否相等
p1 != p2
判断两个pair是否不相等
,>=,<,<=
判断两个pair的大小关系(先比较first,如果相等再比较second)
p1.swap(p2)
交换两个pair的元素


pair应用举例🍗

pair的基本操作举例:

#include <utility>
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拷贝构造一个p3p3.first = 100;cout << "p3=(" << p3.first << "," << p3.second << ")" << endl;p1 = p3;//把p3赋值给p1cout << "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.mzph.cn/news/811717.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ppt技巧:如何将Word文档大纲中导入到幻灯片中?

在PowerPoint中&#xff0c;将Word文档的大纲导入到新的幻灯片是一种非常实用的技巧。以下是详细的步骤&#xff1a; 首先&#xff0c;需要打开PowerPoint软件并打开原始的幻灯片文件。 在PowerPoint的顶部【开始】菜单栏中&#xff0c;找到并点击“新建幻灯片”按钮&#xff0…

【力扣】142. 环形链表 II

142. 环形链表 II 题目描述 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&am…

微信小程序全屏开屏广告

效果图 代码 <template><view><!-- 自定义头部 --><u-navbar title" " :bgColor"bgColor"><view class"u-nav-slot" slot"left"><view class"leftCon"><view class"countDown…

Map相关面试答案(都是简单版

一、HashMap的扩容机制 在1.7中 1、先生成新数组 2、遍历老数组中每个位置上的链表的所有节点 3、取每个节点的key&#xff0c;计算出每个元素在新数组中的下标&#xff0c;并添加到新数组中&#xff0c;这里用的是头插法。 4、转移完毕后将新数组复制给hashMap的table属性 1…

Android OpenCV 概述、优缺点及应用场景分析

摘要 随着移动设备性能的不断提升&#xff0c;安卓平台上的计算机视觉应用日益增多。OpenCV作为一个开源的计算机视觉库&#xff0c;在安卓开发中扮演了重要角色。本文将对安卓OpenCV进行概述&#xff0c;并深入探讨其优缺点以及在不同场景下的应用&#xff0c;为开发者提供参考…

u盘为什么一插上电脑就蓝屏,u盘一插电脑就蓝屏

u盘之前还好好的&#xff0c;可以传输文件&#xff0c;使用正常&#xff0c;但是最近使用时却出现问题了。只要将u盘一插入电脑&#xff0c;电脑就显示蓝屏。u盘为什么一插上电脑就蓝屏呢?一般&#xff0c;导致的原因有以下几种。一&#xff0c;主板的SATA或IDE控制器驱动损坏…

Unable to open connection to “Oracle, Microsoft provider V1.0.5000.0“

这是使用vs2018运行vb.net项目时遇到的问题&#xff0c;Navicat可以正常连接oracle但是项目启动却连接不了数据库报了这个错&#xff0c;网上找了很久&#xff0c;没有找到解决方案&#xff0c;最后发现是少了个东西叫 Oracle Client for Microsoft Tools 19c 官网下载地址&a…

VUE中如何使用 JavaScript 变量来设置CSS变量,从而修改CSS属性 --color 的值

// Vue 组件&#xff08;组件名称&#xff1a;DataView&#xff09; <template><div :style"{ --mycolor: color }">这是一个带有自定义颜色的元素</div> </template><script setup lang"ts">const props defineProps({ tit…

C语言处理文本模板:格式信函编程

开篇 本篇文章的问题来源为《编程珠玑》第3章其中一个问题&#xff0c;格式信函编程。说白了就是先在文件中定义一个文本模版&#xff0c;然后使用数据库中的数据去填充这个模版&#xff0c;最后得到填充后的文本&#xff0c;并输出。 问题概要 在常去的网店键入你的名字和密码…

Harmony鸿蒙南向驱动开发-SPI接口使用

功能简介 SPI指串行外设接口&#xff08;Serial Peripheral Interface&#xff09;&#xff0c;是一种高速的&#xff0c;全双工&#xff0c;同步的通信总线。SPI是由Motorola公司开发&#xff0c;用于在主设备和从设备之间进行通信。 SPI接口定义了操作SPI设备的通用方法集合…

页表缓存TLB原理

处理器的内存管理单元(Memory Management Uint&#xff0c;MMU)负责把虚拟地址转换成物理地址&#xff0c;为了加快虚拟地址到物理地址的转换速度&#xff0c;避免每次转换都需要查询内存中的页表&#xff0c;处理器厂商在MMU中增加了一个高速缓存TLB(Translation Lookaside Bu…

算法练习第16天|101. 对称二叉树

101. 对称二叉树 力扣链接https://leetcode.cn/problems/symmetric-tree/description/ 题目描述&#xff1a; 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true示例 2&#x…

详解QActionGroup类的使用

QActionGroup 是 Qt 框架中用于管理一组相关 QAction 对象的类。它主要用于实现互斥选择&#xff08;即单选&#xff09;或多选&#xff08;即复选&#xff09;的行为&#xff0c;特别是在菜单、工具栏或上下文菜单中&#xff0c;当存在一系列相互排斥或相关联的操作选项时&…

【Python面试题收录】什么是堆?什么是栈?栈和堆的区别是什么?

一、堆和栈的定义 &#xff08;1&#xff09;堆&#xff08;Heap&#xff09; 数据结构&#xff1a;堆是一种特殊的完全二叉树&#xff0c;满足父节点的值总是大于或等于&#xff08;大根堆&#xff09;其子节点的值。也可以是总是小于或等于&#xff08;小根堆&#xff09;其…

品牌百度百科词条创建多少钱?

百度百科作为国内最具权威和影响力的知识型平台&#xff0c;吸引了无数品牌和企业争相入驻。一个品牌的百度百科词条&#xff0c;不仅是对品牌形象的一种提升&#xff0c;更是增加品牌曝光度、提高品牌知名度的重要途径。品牌百度百科词条创建多少钱&#xff0c;这成为了许多企…

玻璃生产线 Web 组态应用案例介绍

玻璃生产线组态可视化 概述 随着工厂信息化、数字化发展&#xff0c;智慧生产车间成为必然发展趋势&#xff0c;通过智能硬件、物联网、大数据等智慧化技术与手段&#xff0c;提高车间生产设备、工艺设备的智能执行能力&#xff0c;从而提升整个车间乃至工厂的智能化、网络化与…

【SpringBoot XSS存储漏洞 拦截器】Java纯后端对于前台输入值的拦截校验实现 一个类加一个注解结束

先看效果&#xff1a; 1.js注入拦截&#xff1a; 2.sql注入拦截 生效只需要两步&#xff1a; 1.创建Filter类&#xff0c;粘贴如下代码&#xff1a; package cn.你的包命.filter; import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.IO…

macos 查看 远程服务器是否开放某个端口

想要使用mac查看远程服务器某个端口是否开发&#xff0c;可通过 nc 命令&#xff0c;如下&#xff1a; nc -zv <服务器IP> <端口号>如果该端口开发&#xff0c;结果为&#xff1a;succeeded! Connection to <服务器IP> port <端口号> [类型] succeed…

CLion 2024:为Mac与Win打造的卓越跨平台集成开发环境

CLion 2024作为一款跨平台IDE&#xff0c;CLion 2024不仅完美支持Mac和Windows两大操作系统&#xff0c;更在细节之处展现了其出色的跨平台兼容性。无论你是在Mac的优雅界面下工作&#xff0c;还是在Windows的实用环境中编程&#xff0c;CLion 2024都能为你提供一致且流畅的开发…

Day98:云上攻防-云原生篇K8s安全Config泄漏Etcd存储Dashboard鉴权Proxy暴露

目录 云原生-K8s安全-etcd(Master-数据库)未授权访问 etcdV2版本利用 etcdV3版本利用 云原生-K8s安全-Dashboard(Master-web面板)未授权访问 云原生-K8s安全-Configfile鉴权文件泄漏 云原生-K8s安全-Kubectl Proxy不安全配置 知识点&#xff1a; 1、云原生-K8s安全-etcd未…