在指定变量结构的 std::vector 中查找最大值

Posted

技术标签:

【中文标题】在指定变量结构的 std::vector 中查找最大值【英文标题】:Find max value in std::vector of structure of specified variable 【发布时间】:2021-09-17 10:12:28 【问题描述】:

我有如下描述的结构向量:

struct Point 
    double x,y;
;

现在我有vector<Point>,其中包含大约 2000 个元素。我想在Point 中找到包含变量y 最大值的元素。

我知道有 std::max_element 但我不知道它是否适用于存储在向量内部结构中的变量。

【问题讨论】:

std::max_element 我正在考虑在“请阅读一些文档”这一行留下一个尖刻的评论,但我决定写一个答案,不过……请阅读一些文档;) 【参考方案1】:

我不知道它是否适用于存储在向量内部结构中的变量。

是的。使用自定义比较器:

auto it = std::max_element(v.begin(),
                           v.end(),
                           [](const auto& a,const auto& b)  
                               return a.y < b.y; 
                           );

【讨论】:

我会使用:auto it = std::max_element(v.begin(),v.end(),[](const auto& a, const自动& b) return a.y

以上是关于在指定变量结构的 std::vector 中查找最大值的主要内容,如果未能解决你的问题,请参考以下文章

查找 std::vector 中每个唯一值的频率的有效方法

查找 std::vector.at() 抛出 std::out_of_range 的位置

查找向量的向量的最大值/最小值

C++ 指针与 std::vector:对长变量有任何影响吗?

如何在 C++ 中合法地声明向量变量?

将数据从 std::vector 传递到 std::valarray 的最有效方法