私が取り組んでいるかなり長いプログラムがあり、ベクトルから要素を削除するのに苦労しています。私は非常に単純なベクトルでそれをやろうとしましたが、同じ問題を抱えています。私が見る限り、私は他の人の質問で誰もが説明したのと同じ方法でそれを行いました. これが簡単なコードです。
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 ベクトルの最後の要素を削除したい。