浮点数比较中不使用 eps 为何 RE
  • 板块学术版
  • 楼主KaguyaH
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/1/23 21:00
  • 上次更新2023/10/28 11:23:45
查看原帖
浮点数比较中不使用 eps 为何 RE
236807
KaguyaH楼主2022/1/23 21:00

在按极角排序向量时,一开始是这样重载的 operator<(删去了一些无影响的关键字):

struct vector {
  double angle() const { return atan2(y, x); }
  friend bool operator<(vector p, vector q)
  { return p.angle() < q.angle(); }
};

这样会 RE on test 20。在运算符重载时考虑 eps 即可 AC。

考虑到 vector::angle() 的返回值应该始终不变,这个运算符重载应该相当于对 double[] 排序,为什么不考虑 eps 会挂啊 QAQ

2022/1/23 21:00
加载中...