【发布时间】:2013-09-29 10:15:19
【问题描述】:
我是初学者,2 个月后重新开始编程。几乎忘记了一切。如果我想要的字符在前半部分找到,我刚刚尝试编译的代码会使用迭代器消除向量的后半部分。
代码如下:
#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;
}
请告诉我我的错误是什么。
另外,可以忘记编程吗?此外,一旦精通,这个概念会永远保留,还是需要不断练习和阅读?
【问题讨论】:
-
您的代码无效,
end/it来自哪里? -
你肯定不想将 Begin 添加到 End。
-
另外,您永远不会声明
it或end。在询问算法之前纠正你的基本错误。 -
为什么不呢?我意识到了这一点,但我可以解释一下吗?我错过了一些东西。很明显。
-
请显示真实代码,
cout<<*v;这无效,sought<*mid也不会编译。
标签: c++ c++11 vector iterator operators