Sla*_*lay 1 c++ iterator vector operators c++11
我是初学者,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;
}
Run Code Online (Sandbox Code Playgroud)
请告诉我我的错误是什么.
还能忘记编程吗?此外,一旦精通,这个概念会永远存在,还是需要不断的练习和阅读?
首先,您不能将迭代器添加到一起(in v.begin() + v.end()).相反,使用
auto mid = v.begin() + v.size() / 2;
Run Code Online (Sandbox Code Playgroud)
其次,end并且it是未宣布的.
最后,您无法通过指定"结束"来删除矢量的一部分.您需要使用不同的方法(左侧作为练习).
| 归档时间: |
|
| 查看次数: |
151 次 |
| 最近记录: |