我正在写这段代码
string largestNumber(const vector<int> &A) {
{
//Doing something
}
result.append(to_string(A[maxindex]));
A.erase(A.begin()+maxindex);
}
cout << result;
}
现在在这个我正确地使用擦除功能。从一开始传递迭代器并向其添加索引值。我哪里做错了?
出现错误
no matching member function for call to 'erase'
我已经包含了向量头文件
#include <vector>
#include <iostream>
#include <algorithm>
#include <string>
"现在我正确地使用了擦除功能。"
不,你没有。
根据这里描述的声明
类型需求-T必须满足MoveAssignable的要求。
你不能修改const
引用的std::vector
, erase()
需要一个非const引用,所以编译器错误信息实际上是不清楚的?
你必须声明你的函数接收一个非const引用形参:
string largestNumber( /* const */ vector<int> &A) {
// ^^^^^ omit this
或使其符合移动
的条件 string largestNumber( vector<int> &&A) {