0
私は3DベクトルをC++マップコンテナのキーとして使用しています。そのためには、2つのベクトルの比較を実装する必要があります。ベクトルを比較するために大きさを使用しました。しかし、2つのベクトルが異なるが、その大きさが同じで、C++マップコンテナのキーを上書きするという問題が発生します。2つの3Dベクトルを比較する
小さな実装を見つけることができます。
class Vector3f
{
public:
float x, y, z;
double magnitude() const { return sqrt(x*x + y*y + z*z); }
}
std::map<Vector3f, std::vector<int>, Vector3fCompare> vector_index;
struct Vector3fCompare
{
bool operator() (const Vector3f& lhs, const Vector3f& rhs) const
{
return lhs.magnitude() < rhs.magnitude();
}
};
2つのベクトルを比較する方法はありますか?
「Vector3f」とは何ですか?メンバーにはどのようなものがありますか? – NathanOliver
Ehm、座標を比較しますか? 'std :: tie'は厳密な弱い順序を破らないように助けます。 – LogicStuff
x、y、z軸で比較するのはなぜですか? (例えば) – Zouch