重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

vector::eraseについて質問させてください。

vector::eraseでググるとforループ内でのeraseの仕方は
書いていあるのですが、単純に1要素だけeraseする
例が見当たらなかったので教えてください。

1要素を削除する場合、
以下のような書き方でよろしいのでしょうか?

いちおう正しく動作しているようです。

ただ、疑問なのは途中の要素[2]を削除しているので、
後半の要素が詰め直されているのか、
そのあたりが自信がなくて不安です。


vector<string> v;

v.push_back("0a");
v.push_back("1a");
v.push_back("2a");
v.push_back("3a");
v.push_back("4a");

v.erase( v.begin() + 2 );//v[2]を削除

//結果表示
for(unsigned int i=0; i<v.size(); i++){
cout<<v[i]<<"\n";
}
cout<<endl;

A 回答 (1件)

vector で要素を erase すると, 空きが出ないようにその後ろの要素を移動させます. つまり, 「詰め直す」ことになりま

す.
    • good
    • 0
この回答へのお礼

さっそくありがとうございます。

理解できました。

お礼日時:2010/11/12 19:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!