gpt4 book ai didi

c++ - 没有从 'value_type'(又名 'char')到 'string'(又名 'basic_string, allocator>')的可行转换

转载 作者:太空狗 更新时间:2023-10-29 21:40:50 30 4
gpt4 key购买 nike

string convert(string name)
{
string code = name[0];
...
}

我从这一行得到“没有从'value_type'(又名'char')到'string'(又名'basic_string,分配器>')的可行转换”。

如果我把它改成:

string convert(string name)
{
string code;
code = name[0];
...
}

然后就可以了。谁能解释一下为什么?

最佳答案

类std::string(对应std::basic_string)有赋值运算符

basic_string& operator=(charT c);

并且这个赋值运算符用在这个代码片段中

string convert(string name)
{
string code;
code = name[0]; // using of the assignment operator
...
}

但是该类没有您可以编写的合适的构造函数

string code = name[0];

你可以这样写

string code( 1, name[0] );

使用构造函数

basic_string(size_type n, charT c, const Allocator& a = Allocator());

关于c++ - 没有从 'value_type'(又名 'char')到 'string'(又名 'basic_string<char, char_traits<char>, allocator<char>>')的可行转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30257526/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com