本文主要是介绍std::vector的reserve(), resize()和shrink_to_fit(),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
std::vector 是 C++ 标准库中的动态数组类型,提供了多种调整其大小的接口函数。以下是几个主要的调整 std::vector 大小的接口函数:
- reserve(size_t n):
这个函数不会改变当前 std::vector 的大小,但它会分配足够的内存空间来存储 n 个元素,以避免在后续插入元素时频繁进行内存分配和拷贝,从而提高插入效率。如果 n 小于当前大小,则不会发生任何变化。
myVector.reserve(100);
- resize(size_t n):
这个函数会改变 std::vector 的大小,使其包含 n 个元素。如果 n 小于当前大小,则会删除多余的元素。如果 n 大于当前大小,那么会添加新的默认构造的元素在末尾,除非你使用了 std::vector::resize(size_t n, const T& val) 版本,这时可以指定用于填充新增元素的值。
myVector.resize(10);
或者
myVector.resize(10, 42);
- shrink_to_fit():
这个函数会尝试减少 std::vector 的大小,使其只包含当前容器中实际使用的元素。如果所有元素都被移动到新的连续内存块中,则容器的容量将减少。这可以释放未使用的内存,并提高内存效率。
myVector.shrink_to_fit();
以上就是 std::vector 主要的调整大小接口函数,它们提供了足够的灵活性来适应不同的数据管理需求。
这篇关于std::vector的reserve(), resize()和shrink_to_fit()的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!