Я хочу определить std::map с ключом как std::pair<std::string, std::string> что-то вроде следующего:
std::map
std::pair<std::string, std::string>
typedef std::map< std::pair<std::string, std::string>, std::string> my_map
Это разрешено, и как мне написать comparasion operator для такой карты.
comparasion operator
Да, это разрешено.
std::pair уже имеет operator<, который сравнивает два значения по порядку, так что вам вообще не нужно делать ничего особенного для компаратора.
std::pair
operator<