为什么 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
是一个 string
。 m[0]
是一个 char
。你不能比较这两种类型。
我尝试将 m[0]
作为一个新的字符串对象进行比较,它有效:
string m = "MEOW";
pair <string, int> p = { "M", 0 };
if (string(1, m[0]) == p.first)
p.second += 10;
为什么我不能编译下面的代码?
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
是一个 string
。 m[0]
是一个 char
。你不能比较这两种类型。
我尝试将 m[0]
作为一个新的字符串对象进行比较,它有效:
string m = "MEOW";
pair <string, int> p = { "M", 0 };
if (string(1, m[0]) == p.first)
p.second += 10;