为什么 std::pair<string, int> 不与 std::string 比较?

Why std::pair<string, int> doesn't compare with std::string?

为什么我不能编译下面的代码?

string m = "MEOW";
pair <string, int> p = { "M", 0 };
if (m[0] == p.first)
   p.second += 10;

我收到错误:

main.cpp:18:14: error: invalid operands to binary expression ('int' and 'std::__1::basic_string<char>')
    if (m[0] == p.first)
        ~~~~ ^  ~~~~~~~

p.first 是一个 stringm[0] 是一个 char。你不能比较这两种类型。

我尝试将 m[0] 作为一个新的字符串对象进行比较,它有效:

string m = "MEOW";
pair <string, int> p = { "M", 0 };
if (string(1, m[0]) == p.first)
   p.second += 10;