为什么我不能使用 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()?提前致谢!

我假设 wordstd::string

如果您查看 std::basic_string::append() 的文档,您会发现它有一堆重载,但它们都是针对字符串或重复字符的。根本没有接受单个字符的任何重载。

仅此而已。

push_back() appends single characters, append() 追加 字符串 个字符。在您的示例中,temp 是单个字符,因此在您查询的两个函数中,只有 push_back() 可用。

或者,std::string 提供 operator+=(),这两种情况都适用。所以你也可以这样做:

word += temp;