【发布时间】:2014-04-11 19:07:51
【问题描述】:
我正在尝试遍历向量并从中删除特定项目。我正在从向量的末尾向下工作,以免在删除项目时弄乱迭代器,但是当我尝试编译时会抛出错误。我浏览了其他一些具有相同错误的帖子,但没有看到任何适用于我的情况的内容,或者如果我没有发现它,我对 C++ 和一般编程仍然很陌生。下面是一个更简单的代码示例来说明我的问题。
#include <iostream>
#include <vector>
using namespace std;
int vectorErase(vector<int>, int &);
int main()
{
vector<int> test;
for(int i=0; i<11;i++)
{
test.push_back(i);
cout<<test[i];
}
for(int i=10;i<=0;i--)
{
vectorErase(test, i);
cout<<test[i];
}
system("pause");
return 0;
}
int vectorErase(vector<int> test, int &iterat)
{
if(test[iterat]>6)
{
test.erase(iterat);
}
return 0;
}
任何帮助都会很棒
【问题讨论】:
-
发布错误消息并指定有错误的代码行。
-
很多事情都错了...首先,
int&不是iterator,(这是erase()的参数)! -
对于初学者,您需要修复 main 中的第二个循环。应该是 for(int i=10;i>=0;i--)
标签: c++ vector compiler-errors