- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想对基于 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/
我有以下内容 static const unsigned int chromosome = 6; double bestFitness[chromosomes]; for(int i = 0; i
int N = 6; vector > A(N, vector(3)); /* Do operation with A */ cout<<(*max_element(a.begin(),a.end()
假设我有一个 std::vector : std::vector v; [v is initialized] 我想得到 v 的最大元素。有一个算法可以做到这一点: int max_value = *s
我注意到 std::max_element 在整数上有一个奇怪的行为,它们相差不超过一个: #include #include #include int main() { std::ve
我有一个二维矩阵 double TotalEnergy[200][47]; 此矩阵填充有适当的值。现在我试图在每一列中找到最大值。 在这种情况下如何使用 std::max_element? 非常感谢。
STL 提供 std::max_element 来查找可迭代对象中的最大元素,例如像这样: std::vector::const_iterator max = std::max_element(o
我一直在看推力,我偶然发现了一个几乎(但不完全)回答我的问题:Finding the maximum element value AND its position using CUDA Thrust
我需要找到存储在我设备上的长数组中的最大元素。我想我可以使用 thrust::max_element 来做到这一点。我在下面代码的 while 循环中调用 thrust::max_element。我只
int array[] = {2, 3, 4, 6}; int array[6] = {2, 3, 4, 6}; int array[MAX_SIZE] = {2, 3, 4, 6}; 在第一个语句中
#include #include int main() { int a[3]={5,3,4}; std::cout并写 #include //... std::cout << *s
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我给这个代码片段输入 1 2 3 4 5 并不断得到 O 作为输出。我想要 5(最大元素)作为所需的输出。 int main() { int inp; std::vector A; for (int
所以根据这里的链接:http://www.cplusplus.com/reference/algorithm/max_element/ ,max_element 函数是 O(n),显然对于所有 STL
同样是O(n)复杂度,但是经过不严谨 测试,使用库函数的速度远超for循环的遍历找最值 ?
我正在了解 std::max_element .我写了下面的代码: auto e = std::max_element( std::begin(rtspUrls
有没有办法通过比较每 N 个元素来找到容器中的最大元素并返回索引。使用 STL、BOOST 或...其他库? 对于每个 N,我的意思是使用 std::max_element,但将 for 的增量从++
我有一个指向对象 QActionDonald 的指针 vector ,我试图找到包含最高 expectedvalue_ 的对象。我已经重载了 operator *actionList = qValu
我怎样才能得到堆栈的最大元素? STL 堆栈没有任何 begin() 或 end() 方法,我可以通过以下方法获得最大值: auto max = max_element(c.begin(), c.en
我正在尝试为 map 编写一个自定义 cmp 函数,这是一个对 map 的第二个元素进行比较的简单函数。我想将该函数用作模板,但我不知道如何将 map 的 .first 和 .second 类型传递给
如果没有元素大于某个值,有什么方法可以使 std::max_element 返回 end 迭代器? 假设我有这个 vector : std::vector vector{3, 6, 2, 5}; au
我是一名优秀的程序员,十分优秀!