相关疑难解决方法(0)

查找向量的max_element,其中使用成员来确定其是否为最大值

考虑具有成员x和std :: vector <A>的A类.现在,在向量内的所有元素中搜索最大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;
}
Run Code Online (Sandbox Code Playgroud)

但它太乏味了,我太懒了..有更好的选择吗?

c++ stl max

6
推荐指数
2
解决办法
9954
查看次数

如何根据对象的某些字段在c ++中的对象向量中获取min或max元素?

(是一个相关的问题,但与我的案例有所不同,这使我怀疑我对它的理解).

我有这门课:

class MyOwnClass
{ 
public:
    int score; Specialcustomtype val1; double index;
private:

};
Run Code Online (Sandbox Code Playgroud)

和MyOwnClass的向量

vector<MyOwnClass> MySuperVector(20);
Run Code Online (Sandbox Code Playgroud)

有一些代码将值设置为MyOwnClass的字段,我想找到向量中的哪个MyOwnClass具有最高值的字段分数.

在相关问题的答案中:

#include <algorithm> // For std::minmax_element
#include <tuple> // For std::tie
#include <vector> // For std::vector
#include <iterator> // For global begin() and end()

struct Size {
    int width, height;
};

std::vector<Size> sizes = { {4, 1}, {2, 3}, {1, 2} };

decltype(sizes)::iterator minEl, maxEl;
std::tie(minEl, maxEl) = std::minmax_element(begin(sizes), end(sizes),
    [] (Size const& s1, Size const& …
Run Code Online (Sandbox Code Playgroud)

c++ field vector object max

3
推荐指数
2
解决办法
9614
查看次数

标签 统计

c++ ×2

max ×2

field ×1

object ×1

stl ×1

vector ×1