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

蓝桥杯基础知识6 pair

蓝桥杯基础知识6 pair

pair 的定义和结构:在C++中,pair是一个模板类,用于表示一对值的组合,头文件<utility>。

pair类 的定义:

template<class T1, class T2>
struct pair{T1 first;    // 第一个值T2 second;    // 第二个值// 构造函数pair();pair(const T1& x, const T2& y);// 比较运算符重载bool operator == (const pair& rhs) const;bool operator == (const pair& rhs) const;// 其他成员函数和特性// ...
};    

 

pair 类模板 有两个模板参数T1 和 T2,分别表示第一个值 和 第二个值的类型;

有两个成员变量,fist 和 second,分别表示 第一个值 和 第二个值;。

pair 类有一些成员函数 和 特性,例如默认构造函数、带参数的构造函数、比较运算符重载等。

使用pair 类,可以方便地将两个值组合在一起,并进行传递、存储 和 操作。

#include<iostream>
#include<utility>int main(){std::pair<int, double> p1(1, 3.14);std::pair<char, std::string> p2('a', "hello");std::cout << p1.first << "," << p1.second << std::endl;std::cout << p2.first << "," << p2.second << std::endl;return 0;
}    

创建两个pair 对象,分别包含不同类型的值,分别访问并输出对象 p1 、p2 的 first 和 second 成员变量的值。

pair 的嵌套:将一个 pair 对象作为另一个 pair 对象的成员。

#include<iostream>
#include<utility>int main(){std::pair<int, int> p1(1, 2);std::pair<int, std::pair<int, int>> p2(3, std::make_pair(4, 5));std::pair<std::pair<int, int>, std::pair<int, int>> p3(std::make_pair(6, 7), std::make_pair(8, 9));std::cout << p1.first << "," << p1.second << std::endl;std::cout << p2.first << "," << p2.second.first << p2.second.second << std::endl;std::cout << p3.first .first <<"," << p3.first.second << "," << p3.second.first << p3.second.second << std::endl;return 0; 
}

pair自带的排序规则:按照first成员升序排序,若first成员相等,则按照second 成员升序排序。

#include<iostream>
#include<utility>
#include<vector>
#include<algorithm>int main(){std::vector<std::pair<int, int>> vec;vec.push_back(std::make_pair(3, 2));vec.push_back(std::make_pair(1, 4));vec.push_back(std::make_pair(2, 1));std::sort(vec.begin(), vec.end());for(const auto& p : vec){std::cout << p.first << "," << p.second << std::endl;}    // 1,4  2,1  3,2return 0;}

 

创建一个存储 pair 对象的向量 vec,包含三个pair对象。

#include<iostream>
#include<utility>
#include<vector>// 定义一个结构体,表示一个人的信息
struct Person{std::string name;int age;
};int main(){// 创建一个存储Person对象的向量std::vector<Person> people;// 添加一些Person对象到向量中people.push_back({"Alice", 25});people.push_back({"Bob", 30});people.push_back({"Charlie", 20});// 创建一个存储pair的向量,每个pair包含一个Person对象和一个评分std::vector<std::pair<Person, int>> scores;// 添加一些pair到向量中scores.push_back({people[0], 90});scores.push_back({people[1], 85});scores.push_back({people[2], 95});// 遍历pair向量,并输出每个人的姓名、年龄 和 评分for(const auto& pair : scores){std::cout << "Name: " << pair.first.name << std::endl;std::cout << "Age: " << pair.first.age << std::endl;std::cout << "Score: " << pair.second << std::endl;}return 0;}

C++ 在线工具 | 菜鸟工具 (jyshare.com)

Name: Alice
Age: 25
Score: 90
Name: Bob
Age: 30
Score: 85
Name: Charlie
Age: 20
Score: 95

可拓展学习:

C++ pair的基本用法总结(整理)_c++ pair用法-CSDN博客

C++中push_back()函数_pushback函数-CSDN博客

相关文章:

蓝桥杯基础知识6 pair

蓝桥杯基础知识6 pair pair 的定义和结构&#xff1a;在C中&#xff0c;pair是一个模板类&#xff0c;用于表示一对值的组合&#xff0c;头文件<utility>。 pair类 的定义&#xff1a; template<class T1, class T2> struct pair{T1 first; // 第一个值T2 seco…...

后端返回给前端的数据格式有哪些?

后端返回的数据格式有很多种&#xff0c;常见的包括JSON、XML、HTML、CSV等。这些格式各有特点&#xff0c;适用于不同的应用场景。 JSON&#xff08;JavaScript Object Notation&#xff09;&#xff1a;JSON是一种轻量级的数据交换格式&#xff0c;易于阅读和编写&#xff0c…...

Transformer的PyTorch实现之若干问题探讨(一)

《Transformer的PyTorch实现》这篇博文以一个机器翻译任务非常优雅简介的阐述了Transformer结构。在阅读时存在一些小困惑&#xff0c;此处权当一个记录。 1.自定义数据中enc_input、dec_input及dec_output的区别 博文中给出了两对德语翻译成英语的例子&#xff1a; # S: de…...

系统参数SystemParameters.MinimumHorizontalDragDistance

SystemParameters.MinimumHorizontalDragDistance 是一个系统参数&#xff0c;它表示在拖放操作中鼠标水平移动的最小距离。 当用户按下鼠标左键并开始移动鼠标时&#xff0c;系统会检查鼠标的水平移动距离是否超过了 SystemParameters.MinimumHorizontalDragDistance。只有当…...

平屋顶安装光伏需要注意哪些事项?

我国对于房屋建设的屋顶形式&#xff0c;主要有平屋顶、斜屋顶、曲面屋顶和多波式折板屋顶等。今天来讲讲在平屋顶安装光伏&#xff0c;需要注意的事项。 1.屋顶结构&#xff1a;在安装光伏系统之前&#xff0c;需要对屋顶结构进行评估&#xff0c;确保屋顶能够承受光伏系统的…...

《Git 简易速速上手小册》第7章:处理大型项目(2024 最新版)

文章目录 7.1 Git Large File Storage (LFS)7.1.1 基础知识讲解7.1.2 重点案例&#xff1a;在 Python 项目中使用 Git LFS 管理数据集7.1.3 拓展案例 1&#xff1a;使用 Git LFS 管理大型静态资源7.1.4 拓展案例 2&#xff1a;优化现有项目中的大文件管理 7.2 性能优化技巧7.2.…...

从0开始学Docker ---Docker安装教程

Docker安装教程 本安装教程参考Docker官方文档&#xff0c;地址如下&#xff1a; https://docs.docker.com/engine/install/centos/ 1.卸载旧版 首先如果系统中已经存在旧的Docker&#xff0c;则先卸载&#xff1a; yum remove docker \docker-client \docker-client-latest…...

嵌入式学习之Linux入门篇笔记——15,Linux编写第一个自己的命令

配套视频学习链接&#xff1a;http://【【北京迅为】嵌入式学习之Linux入门篇】 https://www.bilibili.com/video/BV1M7411m7wT/?p4&share_sourcecopy_web&vd_sourcea0ef2c4953d33a9260910aaea45eaec8 1.什么是命令&#xff1f; 命令就是可执行程序。 比如 ls -a…...

【C语言】SYSCALL_DEFINE3(socket, int, family, int, type, int, protocol)

一、SYSCALL_DEFINE3与系统调用 在Linux操作系统中&#xff0c;为了从用户空间跳转到内核空间执行特定的内核级操作&#xff0c;使用了一种机制叫做"系统调用"&#xff08;System Call&#xff09;。系统调用是操作系统提供给程序员访问和使用内核功能的接口。例如&…...

C++实现鼠标点击和获取鼠标位置(编译环境visual studio 2022)

1环境说明 2获取鼠标位置的接口 void GetMouseCurPoint() {POINT mypoint;for (int i 0; i < 100; i){GetCursorPos(&mypoint);//获取鼠标当前所在位置printf("% ld, % ld \n", mypoint.x, mypoint.y);Sleep(1000);} } 3操作鼠标左键和右键的接口 void Mo…...

Matplotlib绘制炫酷散点图:从二维到三维,再到散点图矩阵的完整指南与实战【第58篇—python:Matplotlib绘制炫酷散点图】

文章目录 Matplotlib绘制炫酷散点图&#xff1a;二维、三维和散点图矩阵的参数说明与实战引言二维散点图三维散点图散点图矩阵二维散点图进阶&#xff1a;辅助线、注释和子图三维散点图进阶&#xff1a;动画效果和交互性散点图矩阵进阶&#xff1a;调整样式和添加密度图总结与展…...

Docker-Learn(一)使用Dockerfile创建Docker镜像

1.创建并运行容器 编写Dockerfile&#xff0c;文件名字就是为Dockerfile 在自己的工作工作空间当中新建文件&#xff0c;名字为Docerfile vim Dockerfile写入以下内容&#xff1a; # 使用一个基础镜像 FROM ubuntu:latest # 设置工作目录 WORKDIR /app # 复制当前目…...

问题:银行账号建立以后,一般需要维护哪些设置,不包括() #学习方法#经验分享

问题&#xff1a;银行账号建立以后&#xff0c;一般需要维护哪些设置&#xff0c;不包括&#xff08;&#xff09; A&#xff0e;维护结算科目对照 B&#xff0e;期初余额初始化刷 C&#xff0e;自定义转账定义 D&#xff0e;对账单初始化 参考答案如图所示...

教授LLM思考和行动:ReAct提示词工程

ReAct&#xff1a;论文主页 原文链接&#xff1a;Teaching LLMs to Think and Act: ReAct Prompt Engineering 在人类从事一项需要多个步骤的任务时&#xff0c;而步骤和步骤之间&#xff0c;或者说动作和动作之间&#xff0c;往往会有一个推理过程。让LLM把内心独白说出来&am…...

FPGA_工程_按键控制的基于Rom数码管显示

一 信号 框图&#xff1a; 其中 key_filter seg_595_dynamic均为已有模块&#xff0c;直接例化即可使用&#xff0c;rom_8*256模块&#xff0c;调用rom ip实现。Rom_ctrl模块需要重新编写。 波形图&#xff1a; 二 代码 module key_fliter #(parameter CNT_MAX 24d9_999_99…...

WordPress Plugin HTML5 Video Player SQL注入漏洞复现(CVE-2024-1061)

0x01 产品简介 WordPress和WordPress plugin都是WordPress基金会的产品。WordPress是一套使用PHP语言开发的博客平台。该平台支持在PHP和MySQL的服务器上架设个人博客网站。WordPress plugin是一个应用插件。 0x02 漏洞概述 WordPress Plugin HTML5 Video Player 插件 get_v…...

【Kotlin】Kotlin基本数据类型

1 变量声明 var a : Int // 声明整数类型变量 var b : Int 1 // 声明整数类型变量, 同时赋初值为1 var c 1 // 声明整数类型变量, 同时赋初值为1 val d 1 // 声明整数类型常量, 值为1(后面不能改变d的值) 变量命名规范如下。 变量名可以由字母、数字、下划线&#xff08;_…...

UDP端口探活的那些细节

一 背景 商业客户反馈用categraf的net_response插件配置了udp探测, 遇到报错了&#xff0c;如图 udp是无连接的&#xff0c;无法用建立连接的形式判断端口。 插件最初的设计是需要配置udp的发送字符&#xff0c;并且配置期望返回的字符串&#xff0c; [[instances]] targets…...

拦截器配置,FeignClient根据业务规则实现微服务动态路由

文章目录 业务场景拦截器用法Open Feign介绍 业务场景 我们服务使用Spring Cloud微服务架构&#xff0c;使用Spring Cloud Gateway 作为网关&#xff0c;使用 Spring Cloud OpenFeign 作为服务间通信方式我们现在做的信控平台&#xff0c;主要功能之一就是对路口信号机进行管控…...

预测模型:MATLAB线性回归

1. 线性回归模型的基本原理 线性回归是统计学中用来预测连续变量之间关系的一种方法。它假设变量之间存在线性关系&#xff0c;可以通过一个或多个自变量&#xff08;预测变量&#xff09;来预测因变量&#xff08;响应变量&#xff09;的值。基本的线性回归模型可以表示为&…...

漏洞审计实战:从思维模式到工具协同的代码安全深度剖析

1. 项目概述&#xff1a;从“bug-audit-skill”看漏洞审计的实战化沉淀最近在GitHub上看到一个名为“bug-audit-skill”的项目&#xff0c;作者是abczsl520。这个项目名直译过来就是“漏洞审计技能”&#xff0c;它不像一个具体的工具&#xff0c;更像是一个知识库或经验集。在…...

img-2社区贡献指南:如何参与开源项目并提交你的第一个Pull Request

img-2社区贡献指南&#xff1a;如何参与开源项目并提交你的第一个Pull Request 【免费下载链接】img-2 Replace elements with to automatically pre-cache images and improve page performance.项目地址: https://gitcode.com/gh_mirrors/im/img-2 想要为优秀的图片懒加…...

Windows系统美化终极指南:如何快速实现个性化定制与性能优化 [特殊字符]

Windows系统美化终极指南&#xff1a;如何快速实现个性化定制与性能优化 &#x1f680; 【免费下载链接】Atlas &#x1f680; An open and lightweight modification to Windows, designed to optimize performance, privacy and usability. 项目地址: https://gitcode.com/…...

【模拟CMOS集成电路】噪声分析实战指南——从模型到计算的完整路径

1. 噪声分析的必要性与基础概念 做模拟电路设计的朋友们应该都深有体会&#xff0c;噪声就像个甩不掉的影子&#xff0c;时时刻刻影响着我们的设计。记得我第一次做低噪声放大器时&#xff0c;仿真结果看起来很美&#xff0c;实测却发现信号完全被噪声淹没&#xff0c;那种挫败…...

从泡泡实验室到阿木社区:PX4开发者如何在国内技术圈子里快速成长?

从泡泡实验室到阿木社区&#xff1a;PX4开发者如何在国内技术圈子里快速成长&#xff1f; 在无人机开源飞控领域&#xff0c;PX4和Pixhawk已经成为开发者绕不开的技术栈。但相比国外活跃的开发者社区&#xff0c;国内的技术生态往往让新手感到无从下手——百度贴吧的讨论碎片化…...

adloop:可编程规则引擎驱动的浏览器网络请求深度拦截与定制

1. 项目概述&#xff1a;一个被低估的广告拦截与隐私增强工具如果你和我一样&#xff0c;是个对网页上无处不在的弹窗广告、自动播放视频和恼人的跟踪脚本感到深恶痛绝的互联网用户&#xff0c;那你一定尝试过各种广告拦截器。从大名鼎鼎的AdBlock Plus、uBlock Origin&#xf…...

来勒光电发布双FA自动耦合系统:突破硅光模块封装效率瓶颈

导读&#xff1a;来勒光电推出的双FA自动耦合系统&#xff0c;是一款专为高速光模块TX/RX端量身打造的高精度自动化耦合设备&#xff0c;以独特的双FA同步耦合设计、全流程无人化作业与模块化兼容能力&#xff0c;为800G/1.6T/3.2T光模块的规模化量产提供高效、稳定、智能的封装…...

3分钟搞定!VideoDownloadHelper视频下载插件终极安装使用指南

3分钟搞定&#xff01;VideoDownloadHelper视频下载插件终极安装使用指南 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 还在为无法保存网页…...

别急着扔!XBOX ONE X黑屏自救指南:30元芯片+手机维修店搞定HDMI故障

XBOX ONE X黑屏故障低成本修复全攻略&#xff1a;30元芯片手机维修店实战方案 当你的XBOX ONE X突然黑屏无信号时&#xff0c;先别急着宣告它"死亡"或花大价钱送修。这种常见故障往往只是HDMI芯片&#xff08;TDP158 G4&#xff09;损坏&#xff0c;而解决方案可能比…...

私有云时代来临:AI NAS如何重塑你的数字生活?

超越传统存储&#xff0c;打造你的私人云端 在信息爆炸的时代&#xff0c;随着个人存储需求的激增和变化&#xff0c;以及个体对数据隐私和安全性的日益重视&#xff0c;外加AI的技术加持&#xff0c;一种大家也许并不熟知的存储解决方案——NAS迎来了发展机遇。 NAS是Network …...