警告:字符常量对其类型而言太长 car.second = 'Sarim';

warning: character constant too long for its type car.second = 'Sarim';

我想做一对int和string。 如:

pair<int,string> car ;
car.first = 10;
car.second = 'Sarim';
cout<<car.first<<endl;
cout<<car.second;

“sarim”在输出中被转换成'm'?

使用

car.second = "Sarim";

第二对是 std::string,不是字符,因此您可以提供 std::stringconst char* 来构造一个。

请注意,单引号用于字符,而我使用的双引号构成 const char*,可用于构造 std::string

Demo

C++ 中的 string 使用 double-quotes (") 标记,single 引号标记一个 字符 (因此只存储一个字符)。此处的警告告诉您您的“字符”太大(确实因为它应该是一个字符串)。

r.second = 'Sarim'; 是错误的。单引号用于字符常量,你所拥有的是 而不是 单个字符。 你要

r.second = "Sarim";

对于多字符文字。