重複の可能性:
STL削除が期待どおりに機能しませんか?
申し訳ありませんが、C++11とイテレータは初めてです。これにより、配列内の3の数字がすべて削除されるはずですが、最後の3は削除されません。なんで?
#include <algorithm>
#include <array>
#include <iostream>
int main() {
std::array<int, 8> a{{9, 3, 4, 5, 33, 5, 6, 3}};
int N(3);
std::remove(a.begin(), a.end(), N);
for (int i : a) {
std::cout << i << '\n';
}
}
私は出力として取得します:
{ 9, 4, 5, 33, 5, 6, 6, 3 }
^
|
// the last 3 is still there