Tri*_* Vu -1 c++ stl stdmap std-pair
最初我的代码看起来像这样:
std::map< std::pair<int,int>, std::vector<Class0*> > aMap;
Run Code Online (Sandbox Code Playgroud)
有效.现在我的代码看起来像这样:
std::map< std::pair<Vec3f, Vec3f>, std::vector<Class0*> > aMap;
Run Code Online (Sandbox Code Playgroud)
它不再正确映射(编译正常).为什么?我该如何解决这个问题?
编辑:这里的流行需求是3D矢量(3个浮点数)的比较代码:
class Vec3f {
...
bool operator () ( const Vector3f& v0, const Vector3f& v1 ) const {
return std::tie(v0[0], v0[1], v0[2]) < std::tie(v1[0], v1[1], v1[2]);
} ...
Run Code Online (Sandbox Code Playgroud)
从这个问题重载运算符集.上面的比较适用于一组,但显然不适合一对.为什么?