擦除功能错误通话

时间:2015-08-22 16:17:28

标签: c++ arrays string vector

我正在写这段代码

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>

1 个答案:

答案 0 :(得分:1)

  

&#34;现在我正在使用擦除功能。&#34;

不,你没有。

根据here

所述的声明
  

类型要求

     

-T必须符合MoveAssignable的要求。

您无法修改引用const的{​​{1}},std::vector需要非const引用,那么编译错误消息实际上还不清楚?

您必须声明您的函数接收到非const引用参数:

erase()

或使其有资格移动

 string largestNumber( /* const */ vector<int> &A) {
                       // ^^^^^ omit this