来源链接:
https://blog.csdn.net/jiayizhenzhenyijia/article/details/97898577
resize(),设置大小;
reserve(),设置容量;
resize()是分配容器的内存大小,而reserve()只是设置容器容量大小,但并没有真正分配内存。
resize()可以传递两个参数,分别是大小和初始值,初始值默认为0,reserve()只能传递一个参数,不能设置初始值,其初始值为系统随机生成。
例:
-
#include<iostream>
-
#include<cstring>
-
#include<cstdio>
-
#include<vector>
-
using
namespace
std;
-
int main()
-
{
-
vector<
int>m;
-
vector<
int>n;
-
vector<
int>s;
-
m.resize(
10);
-
n.reserve(
10);
-
s.resize(
10,
6);
-
cout <<
"m: ";
-
for (
int i =
0; i <
10; i++)
-
{
-
cout << m[i] <<
" ";
-
}
-
cout <<
endl;
-
cout <<
"n: ";
-
for (
int i =
0; i <
10; i++)
-
{
-
cout << n[i] <<
" ";
-
}
-
cout <<
endl;
-
cout <<
"s: ";
-
for (
int i =
0; i <
10; i++)
-
{
-
cout << s[i] <<
" ";
-
}
-
cout <<
endl;
-
return
0;
-
}
输出:
m: 0 0 0 0 0 0 0 0 0 0 n: 12999640 12979904 0 0 0 0 0 0 0 0 s: 6 6 6 6 6 6 6 6 6 6
resize(),设置大小(size);
reserve(),设置容量(capacity);
resize()是分配容器的内存大小,而capacity()只是设置容器容量大小,但并没有真正分配内存。
打个比方:正在建造的一辆公交车,车里面可以设置40个座椅(reserve(40);),这是它的容量,但并不是说它里面就有了40个座椅,只能说明这部车内部空间大小可以放得下40张座椅而已。而车里面安装了40个座椅(resize(40)😉,这个时候车里面才真正有了40个座椅,这些座椅就可以使用了