C ++ STL是否对NaN进行排序检查?

问题描述 投票:-2回答:1

我正在使用Armadillo库中的sort函数,但是它会不断触发NaN错误,当我手动检查时,NaN错误不存在。因此我切换到STL sort函数,它起作用了!所以我的好奇心是,STL排序功能如何处理NaN?]

c++ c++11 c++-standard-library rcpparmadillo
1个回答
3
投票

C ++ STL是否对NaN进行排序检查?

std::sort使用您提供的比较功能。如果您的函数“检查NaN”,则std::sort也会通过比较函数进行。如果不提供比较功能,则默认使用std::less。使用运算符<。具有NaN的<的行为不满足std::sort的要求,如果尝试对包含多个NaN的范围进行排序,则该行为将是不确定的(除非您提供自定义比较功能)。

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