c++

vector清空操作

c++

Posted by YiMiTuMi on July 3, 2023

vector清空操作

清空vector可以通过clear函数或者通过swap来进行清空操作,但这两个又有所不同。

clear清空vector

vector<int> vecClear;
vec_softinfo.clear();

这种方法直接清空 vecClear 变量,将其元素数量设置为零,但保留其内存。这意味着 vecClear 的容量不会改变,只是元素被清除了,可以重用已分配的内存来存储新的元素。

swap清空vector

vector<int> vecClear;
vecClear.swap(vector<int>());

这种方法通过交换空的临时变量与 vecClear 变量来实现清空。这个方法会导致 vecClear 的内存被释放,并且在交换后,vecClear 将成为空变量。这种方式适用于需要释放 vecClear 所占用的内存的情况。

总结

通常情况下,如果希望及时释放 vecClear 所占用的内存并且不再需要重用该向量,那么使用 vecClear.swap(vector()) 可以更有效地释放内存。但如果仍然希望在稍后的代码中继续使用 vecClear,或者预计可能需要向其添加新元素,那么使用 vecClear.clear() 可以更适合,因为它保留了已分配的内存。