相关疑难解决方法(0)

为什么矢量前没有推/弹?

在C++,STL中,我们有模板类<vector>.我们知道它支持O(1)随机访问和尾部修改.我的问题是为什么我们不定义push_front或pop_front <vector>

一种解释是,如果我们想在向量的前面推/弹元素,我们必须将数组中的每个元素移动一步,这将花费O(n).

但我认为并非总是如此.考虑到如果我们<vector>用循环数组实现,我们可以O(1)从向量的前端和尾端实现推/弹,而不会失去O(1)随机访问的能力.所以我个人认为没有任何理由,而不仅仅是一个不实施push_front/ pop_frontfor 的小额开销<vector>.有什么想法吗?

c++ stl vector

3
推荐指数
3
解决办法
1805
查看次数

标签 统计

c++ ×1

stl ×1

vector ×1