STL を試してみたところ、問題が発生しました。そのように機能する方法を説明できませんでした。私は以下のいくつかのコードを持っています:
int main(int argc, char **argv) {
vector<int> myvector(3,20);
vector<int>::iterator it;
myvector.push_back(12);
myvector.push_back(15);
int i = 0;
for(it = myvector.begin(); it!=myvector.end(); it++)
{
if(*it==20)
{
cout<<"delete "<<i<<endl;
myvector.erase(it);
}
i++;
}
for(it = myvector.begin(); it!=myvector.end(); it++)
cout<<*it<<" ";
vector.erase() は 3 番目の項目 (私のベクターでは '20') を消去しませんでした。出力は : 20 12 15 ですが、次のようにすべきだと思います: 12 15.
だから、誰でもそれが私にとってどのように機能するかを説明できますか、それともどこかで間違いを犯しましたか? 本当にありがとう。