vector的reserve和resize用法
std::vector 是 C++ 标准库中的一个动态数组,它可以根据需要自动调整大小。reserve 和 resize 是 std::vector 的两个常用成员函数,它们分别用于预留空间和改变大小。
1.reserve:
reserve 函数用于预留一定数量的元素空间,但不会改变 vector 的大小。这意味着它不会在内存中分配空间,也不会触发元素的构造或析构。调用 reserve 之后,如果你知道将会添加很多元素,可以预先预留一些空间,这样可以减少将来重新分配内存和复制元素的次数,从而提高性能。
cpp
std::vector<int> vec; | |
vec.reserveresize函数vba(100); // 预留100个元素的空间 | |
2.resize:
resize 函数用于改变 vector 的大小。你可以指定新的大小,如果新的大小大于当前的大小,那么 vector 会尝试在内存中分配足够的空间来容纳新元素,并调用相应的构造函数来构造这些新元素。如果新的大小小于当前的大小,那么 vector 会销毁超出的元素并释放相应的内存。
cpp
std::vector<int> vec; | |
vec.resize(100, 0); // 将向量的大小改为100,并用0填充新元素 | |
使用 reserve 和 resize 时需要注意的一点是,它们不会改变 vector 中元素的数量或顺序,只是预留空间或改变大小。如果你需要添加或删除元素,应该使用 push_back, pop_back, insert, erase 等函数。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论