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

时间:2019-09-01 13:07:36

标签: c++ comparison c++14 std-pair

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

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)
        ~~~~ ^  ~~~~~~~

2 个答案:

答案 0 :(得分:2)

p.firststringm[0]char。您无法比较这两种类型。

答案 1 :(得分:0)

我尝试将m[0]作为一个新的字符串对象进行比较,并且可以正常工作:

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