ベクトルから単一の要素を取得し、それをベクトルの後ろにプッシュしてから削除しようとしているので、メモリに空のセクションがありません。消去-削除イディオムはこれを行うことができますが、特定の値のすべてのインスタンスを削除します。最初のものを削除したいだけです。
私は標準ライブラリアルゴリズムの経験があまりなく、これを行うための適切な方法(ある場合)を見つけることができません。次に例を示します。
int main() {
std::vector<int> v{1, 2, 3, 3, 4};
remove_first(v, 3);
std::cout << v; // 1, 2, 3, 4
}
では、このベクトルから3の最初の出現を削除するにはどうすればよいでしょうか。