如何使用函数std :: min()计算最小值?

时间:2019-10-31 21:40:11

标签: c++ visual-studio-2015

我想使用std::min(),但显示错误。我包括了图书馆:

for(size_t i = 0; i < 8; ++i) {
    result[i] = std::min({sonarRange[i], sonarRange2[i], sonarRange3[i]});
}

1 个答案:

答案 0 :(得分:3)

您正在尝试将std::initializer_list传递给std::min(),但是根据C++11/14/17 Features In VS 2015 RTM,我认为Visual Studio 2015还不支持使用std::min()。您也可以将3个值放到int[3]数组中,然后使用std::min_element()查找最小值:

for(size_t i = 0; i < 8; ++i) {
    int ranges[] = {sonarRange[i], sonarRange2[i], sonarRange3[i]};
    result[i] = *std::min_element(std::begin(ranges), std::end(ranges));
}