我似乎想不出一种可靠的方法(也可以压缩内存)从 std::vector
中删除前 N 个元素。怎么做呢?
最佳答案
使用 .erase()
方法:
// Remove the first N elements, and shift everything else down by N indices
myvec.erase(myvec.begin(), myvec.begin() + N);
这将需要从索引 N+1 到末尾复制所有元素。如果你有一个很大的 vector 并且会经常这样做,那么使用 std::deque
代替,它可以更有效地从前面删除元素。
关于c++ - 从 std::vector 中删除前 N 个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7351899/