新闻中心

C++如何获取数组的最大值和最小值_C++ min_element与max_element算法

2025-11-25
浏览次数:
返回列表
使用min_element和max_element可获取数组最值,需包含algorithm头文件,解引用迭代器得值,支持自定义比较规则,但空容器会导致未定义行为。

c++如何获取数组的最大值和最小值_c++ min_element与max_element算法

在C++中,获取数组的最大值和最小值可以通过标准库中的 min_elementmax_element 算法轻松实现。这两个函数定义在 algorithm 头文件中,适用于数组、vector 等容器。

使用 min_element 与 max_element

std::min_element 返回指向范围中最小元素的迭代器,std::max_element 返回指向最大元素的迭代器。需要解引用才能获取实际值。

基本用法示例:

#include <iostream>
#include <algorithm>
using namespace std;

int main() {
    int arr[] = {3, 7, 2, 9, 1, 5};
    int n = sizeof(arr) / sizeof(arr[0]);

    // 获取最小值和最大值
    int min_val = *min_element(arr, arr + n);
    int max_val = *max_element(arr, arr + n);

    cout << "最小值: " << min_val << endl;
    cout << "最大值: " << max_val << endl;

    return 0;
}

作用于 vector 或其他容器

对于 std::vector,可以结合 begin() 和 end() 使用:

美图云修 美图云修

商业级AI影像处理工具

美图云修 50 查看详情 美图云修
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;

int main() {
    vector<int> vec = {10, -2, 8, 15, 0};

    int min_val = *min_element(vec.begin(), vec.end());
    int max_val = *max_element(vec.begin(), vec.end());

    cout << "最小值: " << min_val << endl;
    cout << "最大值: " << max_val << endl;

    return 0;
}

自定义比较规则

如果需要按特定规则比较,比如找绝对值最大或最小的元素,可以传入自定义比较函数或 lambda 表达式:

// 找绝对值最小的元素
int abs_min = *min_element(arr, arr + n, [](int a, int b) {
    return abs(a) < abs(b);
});

注意:若数组为空,调用 *min_element*max_element 会导致未定义行为,使用前应确保容器非空。

基本上就这些。掌握 min_element 和 max_element 能让代码更简洁高效。

以上就是C++如何获取数组的最大值和最小值_C++ min_element与max_element算法的详细内容,更多请关注其它相关文章!


# c++  # 抖音营销推广家乡  # 这两个  # 相关文章  # 适用于  # 头文件  # 命令行  # 迭代  # 自定义  # 递归  # 最小值  # 标准库  # stream  # ios  # ai  # go  # 数组  # 美图  # 大同网站推广官网招聘  # 重庆忠县网站建设模板  # 营销推广 天涯  # 海南外贸网站推广  # 建设网站证书  # 线路产品营销推广方案ppt软件  # 问答网站建设总结范文  # 石家庄正定网站建设推广  # 宁夏电商网站建设推广 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: TypeScript/J*aScript:高效查找数组中首个唯一ID对象  mysql备份恢复性能优化_mysql备份恢复性能优化方法  韩剧圈正版入口页面_韩剧圈官网登录链接  Golang如何优化CPU绑定任务分配策略_Golang CPU任务分配优化实践  虚幻5科幻题材ARPG大作遭取消!本是《奇异人生》厂商新作  高德地图家和公司地址在哪设置 高德地图通勤路线设置方法【超详细】  中兴Axon42Ultra怎样在文件App筛图_iPhone中兴Axon42Ultra文件App筛图【图片筛选】  铁路12306改签能改到更早的车次吗_铁路12306改签提前车次规则  如何优雅地解决Livewire文件上传难题?SpatieLivewireFilepond让一切变得简单  J*a里如何使用N*igableMap进行导航操作_可导航Map操作技巧解析  c++如何实现一个简单的ECS框架_c++数据驱动设计与游戏开发  马斯克:Optimus 人形机器人复数形式为 Optimi  Tailwind CSS line-clamp 布局问题解析与修复指南  PHP中SSG-WSG API的AES加密实践:正确使用初始化向量  Win10双系统截图高效法 截屏快捷键速记【技巧】  优化MinIO list_objects_v2 操作的性能瓶颈与最佳实践  在Qt QML中通过Python字典动态更新TextEdit内容的教程  jQuery Mask 插件中实现电话号码固定前导零的教程  PHP中高效并行检查多链接状态的教程  PPT平滑切换怎么做 PPT炫酷“平滑”切换动画制作教程【必学】  Win11怎么关闭触摸屏_Windows 11禁用HID符合标准触摸屏  写好的html代码怎么运行出来_运行写好的html代码方法【教程】  Adobe PDF表单中利用J*aScript解析与格式化日期组件的教程  如何使用纯J*aScript判断Input元素是否在特定类容器内  J*a实现学校排课程序_面向对象结构化项目示例  vivo浏览器怎么扫描二维码 vivo浏览器内置扫一扫功能使用方法  Google翻译怎么语音输入_Google翻译语音输入功能使用与设置方法  从OpenAI API响应中高效提取生成文本  MongoDB Aggregation:在嵌套对象数组中精确匹配ObjectId  windows10怎么查看本机ip_windows10命令提示符ipconfig使用  动漫共和国防屏蔽稳定域名-动漫共和国官方正版直达通道  Composer如何处理Git子模块(submodule)依赖_Composer与Git Submodule的对比与选择  印象笔记如何设提醒任务防漏执行_印象笔记设提醒任务防漏执行【任务提醒】  HTML转PPT成品工具有哪些?HTML网页转PPT成品工具大全  凉拌黄瓜怎么拌更入味 凉拌黄瓜简单家常做法  Angular Material 垂直步进器:实现底部到顶部排序的教程  Spyder启动失败:字体文件权限拒绝错误解决方案  微信网页版官方入口直达 微信网页版网页版登录使用方法  蛙漫正版漫画平台入口_蛙漫免费阅读全站漫画资源  TikTok搜索结果不显示如何解决 TikTok搜索刷新优化方法  在J*a中如何使用Stream.map转换元素_Stream映射操作解析  J*aScript中正确使用querySelectorAll与复杂CSS选择器  今日头条怎么同步内容到抖音_今日头条内容同步到抖音教程  React列表渲染与独立状态管理:避免全局状态影响局部更新  AI抖音网页版免费视频入口 AI抖音网页端最新视频实时观看  Python中高效且防溢出的双曲正弦计算:基于对数空间的优化策略  将HTML动态表格多行数据保存到Google Sheet的教程  如何使 Jest 模拟函数默认抛出错误以提高测试效率  Node.js中HTML按钮与J*aScript函数交互的正确姿势  抖音网页版快捷访问 抖音网页版网页版入口操作教程 

搜索