C++ C++;查找数组中与特定值相关的最高元素

C++ C++;查找数组中与特定值相关的最高元素,c++,arrays,C++,Arrays,我使用的一些数据使用了一些非常高的值作为错误代码。我目前正在使用std max元素,有没有一种方法可以忽略一个特定的值来执行此操作?。例如,表示特定数字的最大元素 那么,让我们使用一个自定义比较器作为调用std::max_元素的一部分。我们将确保如果我们看到错误代码,那么我们将使其比所有其他元素都小 auto maxElement = std::max_element(std::begin(container), std::end(container), [](T const & lhs

我使用的一些数据使用了一些非常高的值作为错误代码。我目前正在使用std max元素,有没有一种方法可以忽略一个特定的值来执行此操作?。例如,表示特定数字的最大元素

那么,让我们使用一个自定义比较器作为调用
std::max_元素
的一部分。我们将确保如果我们看到错误代码,那么我们将使其比所有其他元素都小

auto maxElement = std::max_element(std::begin(container), std::end(container), [](T const & lhs, T const & rhs) -> bool {
    if (rhs == error_code)
         return false;
    if (lhs == error_code)
         return true;
    return lhs < rhs;
}
auto maxElement=std::max_元素(std::begin(容器),std::end(容器),[](T const&lhs,T const&rhs)->bool{
如果(rhs==错误代码)
返回false;
如果(lhs==错误代码)
返回true;
返回左侧<右侧;
}

因此,让我们使用自定义比较器作为调用
std::max_元素的一部分。我们只需确保如果看到错误代码,那么我们将使其比所有其他元素都小

auto maxElement = std::max_element(std::begin(container), std::end(container), [](T const & lhs, T const & rhs) -> bool {
    if (rhs == error_code)
         return false;
    if (lhs == error_code)
         return true;
    return lhs < rhs;
}
auto maxElement=std::max_元素(std::begin(容器),std::end(容器),[](T const&lhs,T const&rhs)->bool{
如果(rhs==错误代码)
返回false;
如果(lhs==错误代码)
返回true;
返回左侧<右侧;
}

为什么不从头到尾扫描并找到最大值?因为数据集中有一个值是我希望在计算中忽略的其他值的错误代码。例如,找到最大值但忽略55505的所有值。显然,我可以迭代,只是想知道是否有一个简单的方法只考虑它的一个值。使用
std::max_元素
带(λ)函数
comp
判断一个值是否大于另一个值。执行它,例如55505是最小的元素。为什么不从头到尾扫描并找到最大值呢?因为数据集中有一个值是我希望在计算中忽略的其他值的错误代码。例如,找到最大值,但忽略一个最大值ll值为55505。显然,我可以迭代,只是想知道是否有一个简单的方法只考虑它的一个值。使用带有(lambda)的
std::max_元素函数
comp
判断一个值是否大于另一个值。实现它,例如55505是最小的元素。我会首先移动
rhs
测试以满足
(t
@Jarod42:我在想我们是否需要一个关于
lhs==rhs==error\u code
的案例,但这应该也包括在内。好主意。我会先进行
rhs
测试以满足
(t
@Jarod42:我在想我们是否需要一个关于
lhs==rhs==error\u code
的案例,但这应该也包括在内。好主意。