1. ホーム
  2. c++

[解決済み] ある値を持つstlベクターから項目を削除するにはどうすればよいですか?

2022-04-28 02:09:58

質問

stl vector の API ドキュメントを見ていて、vector クラスに、ある値を持つ要素を削除するメソッドがないことに気づきました。これは一般的な操作のようで、これを行う方法が組み込まれていないのは奇妙に思えます。

解決方法は?

std::remove は実際にはコンテナから要素を消去しませんが、新しい終了イテレータを返し、それを container_type::erase を使用して、コンテナの末尾にある余分な要素を実際に削除します。

std::vector<int> vec;
// .. put in some values ..
int int_to_remove = n;
vec.erase(std::remove(vec.begin(), vec.end(), int_to_remove), vec.end());