我在使用矢量擦除功能时遇到了奇怪的问题。我想做的就是擦除向量的第一个元素。
所以这里是细节:我创建了一个名为 cv 的对象指针。在这个对象指针的类中,有一个称为 v 的整数向量。它有一个数字列表。
该对象指针旨在复制传送带的影响。我想做的一件事就是向前移动皮带。这意味着,就向量而言,删除顶部位置的数字。
为此,我编写v.erase(v.begin())
了负责将皮带向前移动的方法。但是当我运行它时,它不起作用。我陷入了一个无限循环,我一直在看同一个项目。
然后我尝试v.erase(0)
了,但这仍然没有用。我尝试从范围中删除,但即使这样也行不通。奇怪的是,我可以毫无问题地添加到向量中,并在其中查找项目。我只是无法删除。任何帮助表示赞赏。如果您需要我提供更多信息,请告诉我。
以下是一些相关代码:
class Belt()
{
vector<int> v;
public:
void MoveBelt();
};
void Belt::MoveBelt()
{
v.erase(v.begin());
}
int main()
{
char filename[256];
Belt *cc = new Belt(filename);
if(condition met)
{
cc->MoveBelt();
}
}
为了方便起见,我没有包含我从文件中读取数据的构造函数,也没有包含我将项目添加到向量的方法。请看一下,如果您需要其他任何东西,请告诉我。