有没有可以在两个方向上调整向量大小的函数?我们可以从开始添加新的空元素的地方操纵指针或元素吗?
答案 0 :(得分:6)
Here是std::vector
的整个界面。很明显,没有任何直接方法可以完成您要问的事情,尽管您可以reserve
然后insert(begin,...)
(如果您真的想要这样做)(它具有线性复杂度,所以通常避免)。
通常的建议是改用std::deque
,因为它是专门为此操作设计的。
答案 1 :(得分:5)
是的,您可以使用insert
在矢量的前面插入元素:
vec.insert(vec.begin(), numer_of_elements_to_insert, {});
但是,请注意,将前部插入向量中的效率非常低,因为它将需要将向量中的所有当前元素移到新插入的元素之后。如果您需要双端容器,请查看std::deque
。