我正在使用犰狳库中的
sort
函数,但它不断触发“NaN 错误”,当我手动检查时,这些错误是不存在的。我已切换到 std::sort
功能并且有效!
所以我想知道:
std::sort
函数如何处理 NaN?
C++ STL 排序检查 NaN 吗?
std::sort
使用您为其提供的比较函数。如果您的函数“检查 NaN”,那么 std::sort
也会通过比较函数执行此操作。如果您不提供比较函数,则默认使用 std::less
。它使用运算符 <
。带有 NaN 的 <
的行为不满足 std::sort
的要求,并且如果您尝试对包含 NaN 的范围进行排序,则该行为将是未定义的(除非您提供自定义比较函数)。