std::sort 如何处理 NaN 值? [已关闭]

问题描述 投票:0回答:1

我正在使用犰狳库中的

sort
函数,但它不断触发“NaN 错误”,当我手动检查时,这些错误是不存在的。我已切换到
std::sort
功能并且有效!

所以我想知道:

std::sort
函数如何处理 NaN?

c++ sorting c++11 std rcpparmadillo
1个回答
9
投票

C++ STL 排序检查 NaN 吗?

std::sort
使用您为其提供的比较函数。如果您的函数“检查 NaN”,那么
std::sort
也会通过比较函数执行此操作。如果您不提供比较函数,则默认使用
std::less
。它使用运算符
<
。带有 NaN 的
<
的行为不满足
std::sort
的要求,并且如果您尝试对包含 NaN 的范围进行排序,则该行为将是未定义的(除非您提供自定义比较函数)。

© www.soinside.com 2019 - 2024. All rights reserved.