"No match for operator+"
"No match for operator+"
我是初学者,2个月后又回到编程。几乎忘记了一切。我刚刚尝试编译的代码消除了向量usin迭代器的后半部分,如果在前半部分找到了我想要的字符。
代码如下:
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
vector<string> v;
string s("hello world");
char sought = 'e';
v.push_back(s);
auto mid = (v.begin() + v.end())/2;
if (sought<*mid)
{
end = mid;
}
cout<<*v;
}
请告诉我我的错误是什么。
另外,编程可以忘记吗?另外,一旦精通,这个概念是永远存在,还是需要不断练习和阅读?
首先,您不能将迭代器添加到一起(在 v.begin() + v.end()
中)。相反,请使用
auto mid = v.begin() + v.size() / 2;
其次,end
和it
是未申报的。
最后,您不能通过分配给"end"来擦除矢量的一部分。您需要使用不同的方法(作为练习保留)。
相关文章:
- 错误消息:使用"string* +="后"no match for 'operator+='"
- 在 Eclipse: "error: no match for 'operator='" 中获取错误消息
- 如何'Invalid conversion'和'no match for operator'更正这些 c++ 错误
- 为什么当我没有变量或其他任何命名的东西时"no match for 'operator==' "错误?
- 编译时二叉搜索树错误的反向迭代器表示"no matching function call for operator=()"
- 从 std::ostream 重载 << 运算符时,为什么编译器会给出"too many parameters for this operator function"错误?
- 为什么我收到以下错误:"no match for 'operator=='"?(带模板的嵌套类)
- 在命名空间内的类中使用带有运算符重载的字符串流时"no match for ‘operator>>’"
- C :用sizeof()operator在for for loop中增加一个int变量,只能工作一次
- 如何修复C++中的"no match for operator+"?
- 运算符重载错误"no match for operator error"
- "No match for operator []"
- 如果我没有重载,为什么我会"no match for ‘operator=’"自定义类?
- 为什么编译器显示错误"no match for 'operator[]' (operand types are 'carti' and 'int')"
- 对简单的帐户检查程序有问题?程序返回编译错误,指出"no match for 'operator||' unsure of how to fix?"
- "no match for 'operator >>'"代码中是什么意思?
- "no match for ‘operator>>’ in ‘inputFile >> buffer"错误?
- 如何修复" no match for 'operator<<' in 'std::cout"错误?
- Qt 序列化。QDataStream & operator<< for base class QPolygonF
- Overload operator< for std::pair