为什么我不能使用 append() 将变量添加到字符串?
Why I can't use append() to add a variable to a string?
我有一段代码:
char temp = word[0];
word.erase(0, 1);
word.append(temp); //word.push_back(temp); is fine
我收到一个错误:
错误:没有匹配的成员函数来调用 'append'
我的问题是为什么我不能在这里使用 append()?提前致谢!
我假设 word
是 std::string
。
如果您查看 std::basic_string::append()
的文档,您会发现它有一堆重载,但它们都是针对字符串或重复字符的。根本没有接受单个字符的任何重载。
仅此而已。
push_back()
appends single characters, append()
追加 字符串 个字符。在您的示例中,temp
是单个字符,因此在您查询的两个函数中,只有 push_back()
可用。
或者,std::string
提供 operator+=()
,这两种情况都适用。所以你也可以这样做:
word += temp;
我有一段代码:
char temp = word[0];
word.erase(0, 1);
word.append(temp); //word.push_back(temp); is fine
我收到一个错误: 错误:没有匹配的成员函数来调用 'append'
我的问题是为什么我不能在这里使用 append()?提前致谢!
我假设 word
是 std::string
。
如果您查看 std::basic_string::append()
的文档,您会发现它有一堆重载,但它们都是针对字符串或重复字符的。根本没有接受单个字符的任何重载。
仅此而已。
push_back()
appends single characters, append()
追加 字符串 个字符。在您的示例中,temp
是单个字符,因此在您查询的两个函数中,只有 push_back()
可用。
或者,std::string
提供 operator+=()
,这两种情况都适用。所以你也可以这样做:
word += temp;