内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
C++标准不允许使用IEEE浮点数(和(Long)双)作为关联容器中的关键类型,即使我确保NaN从未插入到容器中?我不太清楚Key
标准中的“element”的字面意思---如果它是指所有可能的元素,还是仅指在容器中结束的元素。
我曾经在映射中使用过这个谓词,其中可以不允许两个非常接近的值:
struct FuzzyComparer { template <typename T> bool operator()(T x, T y) const { static const T oneMinusEps = (T)1. - 64 * std::numeric_limits<T>::epsilon(); return x / y < oneMinusEps; } };