如何使用std :: pair作为键std :: map

Avi*_*ash 0 c++ stl

我想定义一个std::map带键,std::pair<std::string, std::string>如下所示

typedef std::map< std::pair<std::string, std::string>, std::string> my_map

这是允许的,我怎么写comparasion operator这样的地图.

Sti*_*sis 6

是的,这是允许的.

std::pair已经有一个operator<按顺序比较这两个值,所以你可能根本不需要为比较器做任何特殊的事情.

  • @ezdazuzena它没有按字典顺序比较单个项目(你怎么能一般地实现它?).这里所有的字典意思是它通过第一个元素进行比较,第一个元素是否等于第二个元素.为了比较各个元素,它使用元素'`operator <`. (3认同)