相关文章推荐
正直的大蒜  ·  向MongoDB中的集合中的类型对象数组中添 ...·  1 年前    · 
勤奋的铁链  ·  无法在错误的本地POM中找到指向请求目标和“ ...·  1 年前    · 
俊秀的熊猫  ·  c#-WPF使用类和子类绑定到DataCon ...·  2 年前    · 
有胆有识的豆腐  ·  Geometry.Within(Geomet ...·  2 年前    · 
八块腹肌的课本  ·  java - JPA: SQL ...·  2 年前    · 
Code  ›  C++中argmin和argmax的实现开发者社区
c++ argmax
https://cloud.tencent.com/developer/article/1385972
朝气蓬勃的李子
2 年前
作者头像
卡尔曼和玻尔兹曼谁曼
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';
 
推荐文章
正直的大蒜  ·  向MongoDB中的集合中的类型对象数组中添加新字段-腾讯云开发者社区-腾讯云
1 年前
勤奋的铁链  ·  无法在错误的本地POM中找到指向请求目标和“parent.relativePath”点的有效证书路径-腾讯云开发者社区-腾讯云
1 年前
俊秀的熊猫  ·  c#-WPF使用类和子类绑定到DataContext_c# datacontext_光怪陆离的节日的博客-CSDN博客
2 年前
有胆有识的豆腐  ·  Geometry.Within(Geometry) 方法 (Microsoft.Azure.Cosmos.Spatial) - Azure for .NET Developers | Microsoft Learn
2 年前
八块腹肌的课本  ·  java - JPA: SQL Error: 1062, SQLState: 23000 ERROR: Duplicate entry: - Stack Overflow
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号