可以双向调整矢量大小吗?

时间:2019-07-23 09:11:35

标签: c++ vector

有没有可以在两个方向上调整向量大小的函数?我们可以从开始添加新的空元素的地方操纵指针或元素吗?

2 个答案:

答案 0 :(得分:6)

Herestd::vector的整个界面。很明显,没有任何直接方法可以完成您要问的事情,尽管您可以reserve然后insert(begin,...)(如果您真的想要这样做)(它具有线性复杂度,所以通常避免)。

通常的建议是改用std::deque,因为它是专门为此操作设计的。

答案 1 :(得分:5)

是的,您可以使用insert在矢量的前面插入元素:

vec.insert(vec.begin(), numer_of_elements_to_insert, {});

但是,请注意,将前部插入向量中的效率非常低,因为它将需要将向量中的所有当前元素移到新插入的元素之后。如果您需要双端容器,请查看std::deque