相关文章推荐
机灵的小熊猫  ·  阳光保险集团·  1 年前    · 
飘逸的苹果  ·  光點華山電影館SPOT-Huashan·  1 年前    · 
另类的开水瓶  ·  竹子简笔画教程,画竹子掌简笔画第1种画法,积 ...·  1 年前    · 
朝气蓬勃的领结  ·  你好幸运,每天都和世界上最美的它在一起!| ...·  2 年前    · 
眼睛小的匕首  ·  红木家具有甲醛问题吗?_手机搜狐网·  2 年前    · 
Code  ›  C++中argmin和argmax的实现开发者社区
c++ argmax
https://cloud.tencent.com/developer/article/1385972
朝气蓬勃的李子
3 年前
作者头像
卡尔曼和玻尔兹曼谁曼
0 篇文章

C++中argmin和argmax的实现

前往专栏
腾讯云
备案 控制台
开发者社区
学习
实践
活动
专区
工具
TVP
文章/答案/技术大牛
写文章
社区首页 > 专栏 > 给永远比拿愉快 > 正文

C++中argmin和argmax的实现

发布 于 2019-01-22 09:30:59
1.6K 0
举报

C++中argmin和argmax的实现

在Python中 argmin 和 argmax 这两个函数一般是用来就一列数中的最小值和最大值的索引。C++中我们如何实现呢?

实现思路

  1. 使用STL中的 std::min_element 函数求出最小值;
  2. 使用STL中的 std::distance 计算最小值跟迭代器的头部的距离;

实现代码

#include <algorithm>
template<class ForwardIterator>
inline size_t argmin(ForwardIterator first, ForwardIterator last)
    return std::distance(first, std::min_element(first, last));
template<class ForwardIterator>
inline size_t argmax(ForwardIterator first, ForwardIterator last)
    return std::distance(first, std::max_element(first, last));
}

测试代码

int main() {
    array<int, 7> numbers{2, 4, 8, 0, 6, -1, 3};
    size_t minIndex =  argmin(numbers.begin(), numbers.end());
    cout << minIndex << '\n';
 
推荐文章
机灵的小熊猫  ·  阳光保险集团
1 年前
飘逸的苹果  ·  光點華山電影館SPOT-Huashan
1 年前
另类的开水瓶  ·  竹子简笔画教程,画竹子掌简笔画第1种画法,积木时光简笔画_手机 ...
1 年前
朝气蓬勃的领结  ·  你好幸运,每天都和世界上最美的它在一起!| 推荐_手机搜狐网
2 年前
眼睛小的匕首  ·  红木家具有甲醛问题吗?_手机搜狐网
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号