用一对索引STL地图是个好主意吗?

jm1*_*890 2 c++ stl stdmap std-pair

我只是想知道创建数据结构是否是个好主意

std::map< std::pair<int,int>,std::string >
Run Code Online (Sandbox Code Playgroud)

只是想知道如何在内部订购这对......:S

谢谢!

Jam*_*lis 9

这些对将使用该对进行排序operator<(默认的比较操作std::map),即

返回: x.first < y.first || (!(y.first < x.first) && x.second < y.second)

(C++ 03,20.2.2/6)

请注意,使用一对作为映射键可能会让人感到困惑,尤其是在使用map迭代器时(it->first.first为了获得键对的第一个元素看起来很荒谬).但在某些情况下,它可能比为密钥创建一个全新的结构更容易.

与所有事情一样,谨慎使用,如果它不直接且易于理解,那么找到一种不同的方法可能会更好.