vector向量reserve和resize的区别

【vector向量reserve和resize的区别】C++11
方式/
1挪用reserve函数增添capacity容量, 而size的大小是没有改变的(capacity是指vector当前能容纳的最多元素的大小, 而size是指vector当前持有的元素的大小)

vector向量reserve和resize的区别

文章插图

2挪用函数reserve的前后输出日记信息, capacity容量增添, size的大小前后连结不变

vector向量reserve和resize的区别

文章插图

3挪用resize函数既增添capacity容量, 又增添size的大小

vector向量reserve和resize的区别

文章插图

4从输出前后日记看, 挪用resize之后, capacity和size的大小确实都增添

vector向量reserve和resize的区别

文章插图

5reserve只是预留空间, 不成以用at或者[]拜候元素, 不然会呈现段错误

vector向量reserve和resize的区别

文章插图

6程序运行之后, 节制台提醒了如下所示的错误, 然后程序异常退出

vector向量reserve和resize的区别

文章插图

7挪用reserve申请的内存, 只能采用push_back添加元素到预留空间

vector向量reserve和resize的区别

文章插图

8resize改变容器大小, 而且建立对象, 并且可以或许利用at或者[]拜候元素

vector向量reserve和resize的区别

文章插图

9resize改变容器大小, 当采用push_back添加元素的时辰, 是增添到新的空间

vector向量reserve和resize的区别

文章插图

10从输出的信息看, size在本来的根本上增添了一个元素, capacity在本来的根本上增添了一倍

vector向量reserve和resize的区别

文章插图


以上内容就是vector向量reserve和resize的区别的内容啦, 希望对你有所帮助哦!

    推荐阅读