为什么我不能在下面编译代码?
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)
~~~~ ^ ~~~~~~~
答案 0 :(得分:2)
p.first
是string
。 m[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;