gpt4 book ai didi

c++ - 我如何将 std::max_element 用于结构

转载 作者:搜寻专家 更新时间:2023-10-31 01:25:19 25 4
gpt4 key购买 nike

我想对基于 id 元素的结构 VAR_T 使用 std::max_element,但我无法将开始点和停止点与此函数的输入链接起来。

typedef struct _VAR_ {
int id;
char b[16];

_VAR_() {
int a = 0;
strcpy (b, "------");
}
} VAR_T;

VAR_T newVar[5];
int counter;
int max

max = *std::max_element (newVar.id, newVar.id + counter);

这个错误在最后一行发出:

error: request for member ‘id’

最佳答案

您需要一个自定义比较器来根据 id 成员进行比较。然后,您需要检索 id 成员:

auto it = std::max_element(newVar, newVar + counter,
[](const VAR_T& lhs, const VAR_T& rhs)
{ return lhs.id < rhs.id; })
int max = it->id;

自 C++20 起,您还可以使用投影:

ranges::max_element(newVar, ranges::less, &VAR_T::id);

关于c++ - 我如何将 std::max_element 用于结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57024501/

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