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

C++中,如何找到一个vector中最大的元素

动态规划中,经常需要找到一个线性表中最大的元素,C++ 最常用的是vector,而不是 C 中的数组,虽然结构更加复杂,但是用起来更方便。就连 C++ 创始人 Bjarne Stroustrup 都推荐使用vector,如下是《A Tour of C++ Third Edition》中的内容,并且也强调不用担心效率问题:
请添加图片描述

C++ 算法库中有相应的找到最大值的算法。所以第一步导入库:

#include <algorithm>

相应算法是max_element:获取最大的元素,但是返回值是一个迭代器。 使用方法如下:

int main() {//测试数组std::vector<int> nums = {2,7,9,3,1};//存放最大值的迭代器std::vector<int>::iterator maxNum = max_element(nums.begin(),nums.end());//输出最大值cout << *maxNum << endl;return 0;
}

需要注意还有个叫max的函数,那个是找两个元素里较大的一个的,不是找数组里的。

那么如何获取这个最大值的位置呢?这里需要使用distance函数:

int main() {//测试数组std::vector<int> nums = {2,7,9,3,1};//存放最大值的迭代器std::vector<int>::iterator maxNum = max_element(nums.begin(),nums.end());//通过distance得到最大值和第一个元素之间的距离,得到最大值的下标cout << distance(nums.begin(), maxNum) << endl;return 0;
}

希望能帮到有需要的人~


http://www.mrgr.cn/news/65523.html

相关文章:

  • 【Vue3】自定义组件及组件间的通信-案例程序及配图版
  • Redis系列---数据管理
  • 信息安全工程师(74)网络安全风险评估技术方法与工具
  • 江协科技STM32学习- P32 MPU6050
  • Docker BUG排查
  • ubuntu20.04 加固方案-检查是否设置登录超时
  • Spring Boot框架
  • 数字身份发展趋势前瞻:身份即服务
  • Matlab实现海马优化算法(SHO)求解路径规划问题
  • IA应用加速,让电子供应链更智能高效
  • 安当KSP密钥管理系统:引领未来,全面支持抗量子算法
  • 如何快速把多个视频文件生成一个二维码来印刷使用?
  • 【OH】openHarmony整仓代码下载
  • Day24 opencv预处理
  • 云原生周刊:微服务架构 2025 年的发展趋势丨2024.11.04
  • Qt项目实战:红绿灯小程序
  • 二分查找算法上篇
  • SQL server 列转行
  • 记录一次node节点异常的排查
  • Python下的卡尔曼和贝叶斯滤波器
  • 互联网十万个为什么之什么是DDoS攻击?
  • 【论文复现】ChatGPT多模态命名实体识别
  • 什么是SRRC认证?蓝牙模块需要过SRRC认证吗?
  • 在路由引入时应用路由策略示例
  • Spring Boot代理问题
  • 后端java——如何为你的网页设置一个验证码