【STL】C++max_element()函数用法
在 C++ 中,std::max_element
是一个标准库算法,定义在 <algorithm>
头文件中,用于在指定范围内查找最大元素的迭代器。
时间复杂度:,其中是范围 中的元素个数。因为需要遍历整个范围来找到最大元素。
取数组中元素最大值的下标
vector<int> a;
int maxvalue_index = max_element(a.begin(), a.end()) - a.begin();
int b[N]; // 设长度为n
int maxvalue_index = max_element(b, b + n) - b;
取数组某段区间内元素最大值的下标
取数组nums
在区间[l, r)
(左闭右开)最大值下标
vector<int> nums;
int maxvalue_index = max_element(nums.begin() + l, nums.begin() + r) - nums.begin();
取数组中的元素最大值,在函数前面加*即可取元素的值
vector<int> a;
int max_value = *max_element(a.begin(), a.end());
int b[N]; // 设长度为n
int max_value = *max_element(b, b + n);
自定义比较函数
#include <iostream>
#include <algorithm>
#include <vector>
// 自定义比较函数,比较元素的绝对值
bool abs_compare(int a, int b) {
return std::abs(a) < std::abs(b);
}
int main() {
std::vector<int> numbers = {-3, 1, -4, 1, -5, 9, 2, 6, -5, 3, 5};
// 使用自定义比较函数查找绝对值最大的元素的迭代器
auto max_it = std::max_element(numbers.begin(), numbers.end(), abs_compare);
if (max_it != numbers.end()) {
std::cout << "绝对值最大的元素是: " << *max_it << std::endl;
std::cout << "绝对值最大的元素的索引是: " << std::distance(numbers.begin(), max_it) << std::endl;
}
return 0;
}
分类:
C++STL/库函数用法
标签:
STL
, C++max_element
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析