STL 中 resize() 和 reserve() 的区别
capacity、size、重新调整大小、预留空间
标准回答
resize() 和 reserve() 两个成员函数都是 vector 容器的公有成员函数,涉及到容器的 capacity 和 size。
capacity 和 size
capacity:该值在容器初始化时赋值,指的是容器能够容纳的最大的元素的个数,也就是容量。
size:指的是容器中实际元素的个数。
resize() 和 reserve() 的功能及区别
resize():重新指定容器的长度,若容器变长,则以默认值填充新位置(还有一个重载的 resize() 函数,可以使用指定的元素进行填充),如果容器变短,则末尾超出容器长度的元素被删除。
reserve():容器预留len个元素长度,预留位置不初始化,元素不可访问。
resize() 既修改了 capacity 大小,也修改了 size 大小,而 reserve() 只修改 capacity 大小,不修改 size 大小。
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题
得分点
capacity、size、重新调整大小、预留空间
参考答案
标准回答
resize() 和 reserve() 两个成员函数都是 vector 容器的公有成员函数,涉及到容器的 capacity 和 size。
capacity 和 size
capacity:该值在容器初始化时赋值,指的是容器能够容纳的最大的元素的个数,也就是容量。
size:指的是容器中实际元素的个数。
resize() 和 reserve() 的功能及区别
resize():重新指定容器的长度,若容器变长,则以默认值填充新位置(还有一个重载的 resize() 函数,可以使用指定的元素进行填充),如果容器变短,则末尾超出容器长度的元素被删除。
reserve():容器预留len个元素长度,预留位置不初始化,元素不可访问。
resize() 既修改了 capacity 大小,也修改了 size 大小,而 reserve() 只修改 capacity 大小,不修改 size 大小。