gpt4 book ai didi

c++ - 查找一个 vector 的 max_element,其中一个成员用于决定它是否是最大值

转载 作者:可可西里 更新时间:2023-11-01 18:41:25 26 4
gpt4 key购买 nike

考虑一个类 A 有一个成员 x 和一个 std::vector< A >。现在,在 vector 内的所有元素中搜索最大的 x 是一项常见的任务。显然,如果 x 上有迭代器,我只能使用 std::max_element。但是我必须自己写一个,或者我只是做一个简单的for循环。

maxSoFar = -std::numeric_limits< double >::max();
for( std::vector< A >::const_iterator cit = as.begin(); cit != as.end(); ++cit )
{
if( cit->x > maxSoFar )
maxSoFar = cit->x;
}

但是太繁琐了,我又很懒..有没有更好的选择?

最佳答案

您可以将比较器传递给 max_element。如果您的编译器支持 lambda(可能支持),这很容易:

std::max_element(as.begin(), as.end(),
[](A a, A b){ return a.x < b.x; });

关于c++ - 查找一个 vector 的 max_element,其中一个成员用于决定它是否是最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3994890/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com