オブジェクトを保存したいのですがstd::set、Point3D比較関数は次のように定義されています (辞書順):
bool operator<(const Point3D &Pt1, const Point3D &Pt2)
{
const double tol = 1e-5;
if(fabs(Pt1.x() - Pt2.x()) > tol)
{
return Pt1.x() < Pt2.x();
}
else if(fabs(Pt1.y() - Pt2.y()) > tol)
{
return Pt1.y() < Pt2.y();
}
else if(fabs(Pt1.z() - Pt2.z()) > tol)
{
return Pt1.z() < Pt2.z();
}
else
{
return false;
}
}
場合によってsetは、同じ点が含まれている場合があります。問題は比較機能にあると思いますが、正確には問題が見つかりません。どんな助けでも大歓迎です!