没有匹配的成员函数调用“擦除”
Posted
技术标签:
【中文标题】没有匹配的成员函数调用“擦除”【英文标题】:No matching member function for call to "erase" 【发布时间】:2017-06-08 06:42:48 【问题描述】:我尝试调用 erase() 函数来删除字符串中的空格,用于将字符串转换为整数的函数。相同的代码在 main() 中有效,但在函数内部却没有。我该如何修复它?
int convert(const string &line)
for (int i=0;i<line.length();i++)
char wh=' ';
if(line.find(wh))
line.erase(find(line.begin(),line.end(),' '));
//cout<<line[i];
if(line.length()==0)
return 0;
int a=line[line.length()-1]-'0';
int b=convert(line.substr(0,line.length()-1))*10;
return a+b;
【问题讨论】:
line
被声明为const
;你不能修改它。
【参考方案1】:
尝试逐行传递值而不是 const 引用。 const ref 不能更改
int convert(std::string line)
【讨论】:
谢谢你,对我很有帮助。【参考方案2】:尝试从 convert() 中删除 const
。
任何用 const 声明的东西都不能修改。
【讨论】:
以上是关于没有匹配的成员函数调用“擦除”的主要内容,如果未能解决你的问题,请参考以下文章