vector erase涉及的数据结构知识点和算法
时间: 2023-10-02 18:09:51 浏览: 124
跟我学编程
5星 · 资源好评率100%
vector erase 涉及的数据结构知识点是动态数组,算法是线性时间复杂度的元素移动算法。
vector 是一个动态数组,可以在运行时自动扩展大小,erase 函数将 vector 容器中指定位置的元素删除。当调用 erase 函数时,它会将指定位置的元素删除,并将后面的元素向前移动,以填补被删除的元素的空缺。因此,erase 操作的时间复杂度是 O(n),其中 n 是 vector 容器中元素的个数。
在实现 erase 操作时,需要使用线性时间复杂度的元素移动算法,以保证删除一个元素后,后面的元素能够正确地填补空缺。常见的线性时间复杂度的元素移动算法有 memmove 函数、std::move 函数等。C++ STL 中的 vector 类使用的是 std::move 函数进行元素移动。
阅读全文