Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我在犰狳库中使用排序功能,但它不断触发 NaN 错误,当我手动检查时这些错误不存在......所以我切换到 STL 排序功能并且它工作了!所以我的好奇心是,STL 排序函数如何处理 NaN?
C++ STL 是否对 NaN 进行排序检查?
std::sort使用您为其提供的比较功能。如果您的函数“检查 NaN”,那么std::sort通过比较函数也是如此。如果您不提供比较功能,则std::less默认使用。那使用操作符<。如果您尝试对包含 NaN 的范围进行排序(除非您提供自定义比较函数),则 with NaNs的行为<不满足 的要求std::sort并且行为将未定义。
std::sort
std::less
<