C++利用键值对计算某一个数对应的最值及其索引位置

目录

  • 一、算法概述
  • 二、代码实现
    • 1、计算最值
    • 2、计算最值及其索引
  • 三、结果展示

在这里插入图片描述

本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。

一、算法概述

  类似下图所示,计算第一列中1或2对应的最大值。
在这里插入图片描述

二、代码实现

1、计算最值

#include <map>
#include <vector>
#include <iostream>int main() 
{// 示例数据std::vector<std::pair<int, int>> data = { {1, 100}, {1, 101}, {1, 102}, {2, 100}, {2, 101}, {2, 102} };// 使用std::map来存储每个键的最大值std::map<int, int> maxValues;// 迭代数据for (const auto& pair : data) {// 如果这个键还没有在map中,或者当前值大于map中存储的值,更新它if (maxValues.find(pair.first) == maxValues.end() || pair.second > maxValues[pair.first]) {maxValues[pair.first] = pair.second;}}// 输出结果for (const auto& maxPair : maxValues) {std::cout << "Column1 value " << maxPair.first << " has a maximum Column2 value of " << maxPair.second << std::endl;}return 0;
}

2、计算最值及其索引

#include <map>
#include <vector>
#include <iostream>int main() 
{// 示例数据,每个pair是{第一列的值, 第二列的值}std::vector<std::pair<int, int>> data = { {1, 100}, {1, 101}, {1, 102}, {2, 100}, {2, 101}, {2, 102} };// 使用std::map来存储每个键的最大值的索引std::map<int, int> maxIndices;// 使用std::map来存储每个键的当前最大值std::map<int, int> maxValues;// 迭代数据,i 是行数索引for (int i = 0; i < data.size(); ++i) {const auto& pair = data[i];// 检查是否需要更新最大值和行数索引if (maxValues.find(pair.first) == maxValues.end() || pair.second > maxValues[pair.first]) {maxValues[pair.first] = pair.second;maxIndices[pair.first] = i;  // 更新行数索引}}// 输出结果for (const auto& maxIndex : maxIndices) {std::cout << "Column1 value " << maxIndex.first<< " has a maximum Column2 value in row " << maxIndex.second << std::endl;}return 0;
}

三、结果展示

Column1 value 1 has a maximum Column2 value of 102
Column1 value 2 has a maximum Column2 value of 102Column1 value 1 has a maximum Column2 value in row 2
Column1 value 2 has a maximum Column2 value in row 5

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/793120.shtml

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

相关文章

线段树练习

1.单点修改区间查询 P3374 【模板】树状数组 1 题目描述 如题&#xff0c;已知一个数列&#xff0c;你需要进行下面两种操作&#xff1a; 将某一个数加上 x 求出某区间每一个数的和 输入格式 第一行包含两个正整数 n,m&#xff0c;分别表示该数列数字的个数和操作的总个…

ChatGPT 与 OpenAI 的现代生成式 AI(下)

原文&#xff1a;Modern Generative AI with ChatGPT and OpenAI Models 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 七、通过 ChatGPT 掌握营销技巧 在本章中&#xff0c;我们将重点介绍营销人员如何利用 ChatGPT&#xff0c;在这一领域中查看 ChatGPT 的主要用例…

Delphi编写的图片查看器

UNIT Unit17;INTERFACEUSESWinapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,Vcl.StdCtrls, Vcl.ExtDlgs, Vcl.ExtCtrls, Vcl.Imaging.jpeg; //注意&#xff1a;要加入jpej 否侧浏览图…

ids工业相机与电控位移台同步控制及数据采集

通过VS2017和OpenCV,实现ids工业相机与电控位移台同步控制及数据采集 目录项目环境配置代码流程及思路项目架构项目开发运行效果开发关键ids相机配置位移台环境配置相机头文件相机参数设置保存图像函数设置电控位移台头文件电控位移台设置参数最后就是通过main函数进行调用和控…

《QT实用小工具·十一》Echart图表JS交互之仪表盘

1、概述 源码放在文章末尾 该项目为Echart图表JS交互之炫酷的仪表盘&#xff0c;可以用鼠标实时改变仪表盘的读数。 下面为demo演示&#xff1a; 该项目部分代码如下&#xff1a; #include "widget.h" #include "ui_widget.h" #include "qurl.h&q…

pytest中文使用文档----11测试的参数化

1. pytest.mark.parametrize标记 1.1. empty_parameter_set_mark选项1.2. 多个标记组合1.3. 标记测试模块 2. pytest_generate_tests钩子方法 在实际工作中&#xff0c;测试用例可能需要支持多种场景&#xff0c;我们可以把和场景强相关的部分抽象成参数&#xff0c;通过对参数…

PWM技术的应用

目录 PWM技术简介 PWM重要参数 PWM实现呼吸灯 脉宽调制波形 PWM案例 电路图 keil文件 直流电机 直流电机的控制 直流电机的驱动芯片L293D L293D引脚图 L293D功能表 直流电机案例 电路图 keil文件 步进电机 步进电机特点 步进电机驱动芯片L298 L298引脚图 L…

Django创建app

一个新建立的项目结构大概如下 mysite/  manage.py   mysite/    init.py    settings.py    urls.py    asgi.py    wsgi.py 各文件和目录解释&#xff1a; 外层的mysite/目录与Django无关&#xff0c;只是项目容器&#xff0c;可以任意重命名.manage.py&#x…

opencv-python库 cv2ROI区域颜色通道提取合并颜色通道

文章目录 ROI区域颜色通道提取合并颜色通道 ROI区域 在OpenCV&#xff08;cv2&#xff09;中&#xff0c;ROI&#xff08;Region of Interest&#xff0c;感兴趣区域&#xff09;是指图像中你特别关心的部分。通过指定ROI&#xff0c;你可以对图像的特定区域进行处理、分析或显…

android 扫描二维码

1.在你的build.gradle文件中添加Mobile Vision库的依赖&#xff1a; dependencies {implementation com.google.android.gms:play-services-vision:20.1.0 } 2.创建一个新的Activity来处理扫描过程。 import android.Manifest; import android.content.pm.PackageManager; i…

算法| ss 回溯

39.组合总数46.全排列—478.子集79.单词搜索—1连续差相同的数字—1 39.组合总数 /*** param {number[]} candidates* param {number} target* return {number[][]}*/ // 思路 // dfs传参&#xff0c;传idx&#xff0c; 剩余target // dfs返回&#xff1a; 0 收集&#xff0c…

Linux编译Go运行在Windows上(纯记录)

要在Windows上运行Go程序&#xff0c;您需要使用交叉编译的方法在Linux上编译生成Windows可执行文件。以下是完成此任务的步骤&#xff1a; 安装Go编译器&#xff1a;首先确保您在Linux系统上安装了Go编程语言的编译器。如果尚未安装&#xff0c;请前往Go官方网站下载并安装适用…

vue快速入门(一)vue的导入方法

注释很详细&#xff0c;直接上代码 新增内容 下载js代码导入实例数据绑定显示 源码 index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-widt…

HbnnMall电子商城系统介绍(功能与技术栈)

今天在看我个人网站上的文章时&#xff0c;看到了曾经在2020年自己开发的电商系统。那时我已经入职小米有一段时间了&#xff0c;基本已经对各个业务线&#xff0c;各种业务知识有了系统性的了解和学习&#xff0c;所以想自己动手写一个电商系统&#xff0c;以便进一步提高自己…

书生·浦语训练营二期第二次笔记

文章目录 1. 部署 InternLM2-Chat-1.8B 模型进行智能对话1.1 配置环境1.2 下载 InternLM2-Chat-1.8B 模型 2. 实战&#xff1a;部署实战营优秀作品 八戒-Chat-1.8B 模型2.1 配置基础环境2.2 使用 git 命令来获得仓库内的 Demo 文件&#xff1a;2.3 下载运行 Chat-八戒 Demo 3. …

19.网络测试

考试频率低&#xff1b;主要是上午题&#xff1b; 主要议题&#xff1a; 1.网络全生命周期测试策略 2.网络设备评测指标 吞吐量&#xff1a;单位时间内完成xxxx的数量&#xff1b;如&#xff1a;不丢包情况下&#xff0c;系统最大的包转发速度&#xff1b; 丢包率&#xff…

哈佛大学商业评论 -- 第二篇:增强现实是如何工作的?

AR将全面融入公司发展战略&#xff01; AR将成为人类和机器之间的新接口&#xff01; AR将成为人类的关键技术之一&#xff01; 请将此文转发给您的老板&#xff01; --- 本文作者&#xff1a;Michael E.Porter和James E.Heppelmann 虽然物理世界是三维的&#xff0c;但大…

java:课程笔记w3

文章目录 1. 程序控制1.1 if-else和switch细节1.2 三元运算符1.3 数据类型细节 2. 循环loop2.1 使用while/ for的情况&#xff1f;2.2 break、continue、exit() 3. class3.1 instance variable属性3.2 构造函数constructor function3.3 this和return3.4 variable 1. 程序控制 …

fdisk -l命令有什么用?fdisk -l详解

fdisk -l命令用于查看CentOS系统中所有硬盘及其分区的详细信息。该命令的输出会显示硬盘的大小、分区表结构、分区类型以及每个分区的起始和结束扇区等信息。 以下是一个典型的fdisk -l命令输出示例及其解释&#xff1a; Disk /dev/sda: 478.9 GB, 478888853504 bytes, 9353297…

C语言进阶课程学习记录-第22课 - 条件编译使用分析

C语言进阶课程学习记录-第22课 - 条件编译使用分析 条件编译基本概念条件编译实验条件编译本质实验-ifdefinclude本质实验-间接包含同一个头文件解决重复包含的方法-ifndef实验-条件编译的应用小结 本文学习自狄泰软件学院 唐佐林老师的 C语言进阶课程&#xff0c;图片全部来源…