我正在处理一个相当长的程序,并且很难从向量中删除元素。我试图用一个非常简单的向量来做到这一点,并且遇到了同样的问题。据我所知,我的做法与每个人在其他人的问题中解释的方式相同。这是简单的代码。
vector<int> vect;
vect.push_back(3);
vect.push_back(2);
cout << vect[1]; // prints '2'
vect.erase(vect.begin()+1);
cout << vect[1] << endl; // prints '2'
我究竟做错了什么?
上面的代码似乎有效,因为我检查了最后的大小,它打印了“1”。真正的代码虽然没有:
size = A[i]->B().size();
cout << "size is " << A[i]->B().size() << endl; // prints 21
A[i]->B().erase(A[i]->B().begin()+size);
cout << "size now " << A[i]->B().size() << endl; // prints 21
我看不出我做了什么不同的事情?A是一个向量,它存储了其他向量。我想删除 B 向量中的最后一个元素。