c++ - 从 std::vector 中删除前 N 个元素

标签 c++ stdvector

我似乎想不出一种可靠的方法(也可以压缩内存)从 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/

相关文章:

c++ - 如何将 TCHAR 转换为 const char?

c++ - 我的代码有什么错误?

python - 通过 Cython(回调)将 Python 函数应用于 std::vector

c++ - 在 C++ 中给定指向它的指针,查找 3-D vector 中元素的位置

c++ - 从资源加载图像失败

c++ - 推荐一些c/c++的在线编译器

c++ - 为什么 std::vector::emplace 调用析构函数而不调用任何复制构造函数?

c++ - C++ 中的 vector 存储

winapi - 临界区对象可以存储在 std::vector 中吗?

C++字符串大小减去整数不是期望值,为什么?