擦除函数调用错误
Erase function wrong call
我正在写这段代码
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) {
相关文章:
- 错误:调用'getline'没有匹配函数
- 使用 std::find 时没有匹配的函数调用错误
- 错误:调用"es_queue::set_rpc_vector(std::vector >&, std::__cxx11::string)"没有匹配函数
- 使用成员初始值设定项列表时没有匹配的函数调用错误
- 使用另一个函数调用一个函数(都在类中)时出现问题.没有错误代码C++
- 错误:调用'strcmp'没有匹配函数(尝试设置显示用户信息功能)
- 第 5 行:字符 54:错误:调用"min(int,std::__cxx11::basic_string<char>::size_type)"没有匹配函数
- 编译器错误:函数调用在常量表达式中必须有一个常量值
- 错误:调用'function namel'没有匹配函数
- C ++ DLL导入:函数调用返回错误的结果
- 函数调用中出现意外编译错误 (C++)
- C++错误:调用"print_size"没有匹配函数
- 为什么将"<<"运算符作为函数调用会导致"ambiguous call"编译器错误?
- 使用 boost::thread 运行函子,但析构函数被错误地调用
- C ++尝试访问映射中的元素会给我一个不匹配的函数调用错误
- getHighest 函数调用在产生 0 的C++会导致错误
- 错误:调用'begin(long double [nPoints])'没有匹配函数;使用硬编码的 int 与整数变量初始化向量
- 错误:函数调用中有两个参数
- 错误:函数调用中从int到int(*)[4]的转换无效
- 错误 - 函数调用不正确