没有 std::string .erase() 的重载函数实例
No instance of overloaded function for std::string .erase()
我想实现一个函数来读取返回 std::string 的用户输入。我还希望在返回字符串之前删除回车符,以防万一出现问题(有回车(。
std::string getInput() {
std::string str = "";
std::cout << "> ";
std::getline(std::cin, str);
if (std::cin.eof()) {
quitGame();
}
str.erase(std::remove(str.begin(), str.end(), 'r'), str.end());
return str;
}
错误出现在str.erase
,它指出no instance of overloaded function
但我相信我已经提供了足够的标头并匹配了函数的参数?
有人可以帮我吗?我在这里错过了什么吗?
我已经用 c++ 11、C++ 12 和 c++ 14 编译了你的代码。
它不起作用的唯一原因是缺少算法标头
所以只是
#include <algorithm>
#include <iostream>
它应该可以解决问题 - 这是编译函数所需的唯一两个标头。
另外,您已经声明您使用c ++ 11,因此请确保使用g ++和-std=c ++ 11标志进行编译。
相关文章:
- 为什么这个运算符<重载函数对 STL 算法不可见?
- 可以打印矢量和矢量中的矢量的非重载C++函数
- 错误 没有与参数列表匹配的重载函数"getline"实例
- 使用模板重载函数
- C++线程中,没有重载函数接受 X 参数
- std::vector 没有重载函数的实例与参数列表匹配
- C++重载函数,一个采用基类的参数,另一个采用派生类的参数
- 错误:无法解析对重载函数的引用;你的意思是调用它吗?
- 对重载函数find_first_not_of的不明确调用
- 如何从重载解析中删除重载函数?
- CUDA:重载函数"isnan"的多个实例
- C++派生类重载函数(带有 std::function 参数)不可见
- 避免在人为的重载函数调用中拼写出类型
- C++:如何为多个重载函数保留通用代码路径?
- 什么时候可以使用常量装饰调用我的重载函数?
- 尝试使用谓词函数会导致错误:"std::sort"未找到匹配的重载函数
- std::调用,未找到匹配的重载函数
- 为什么在传递长整型时调用具有两个双精度类型的参数的重载函数?
- 为什么使用不匹配的参数调用重载函数仍然有效
- 如何通过签名作为模板参数来解决重载函数?