C++中resize函数的用法

  • Post author:
  • Post category:其他


来源链接:

https://blog.csdn.net/jiayizhenzhenyijia/article/details/97898577

resize(),设置大小;

reserve(),设置容量;

resize()是分配容器的内存大小,而reserve()只是设置容器容量大小,但并没有真正分配内存。

resize()可以传递两个参数,分别是大小和初始值,初始值默认为0,reserve()只能传递一个参数,不能设置初始值,其初始值为系统随机生成。

例:


 
 
  1. #include<iostream>
  2. #include<cstring>
  3. #include<cstdio>
  4. #include<vector>
  5. using namespace std;
  6. int main()
  7. {
  8. vector< int>m;
  9. vector< int>n;
  10. vector< int>s;
  11. m.resize( 10);
  12. n.reserve( 10);
  13. s.resize( 10, 6);
  14. cout << "m: ";
  15. for ( int i = 0; i < 10; i++)
  16. {
  17. cout << m[i] << " ";
  18. }
  19. cout << endl;
  20. cout << "n: ";
  21. for ( int i = 0; i < 10; i++)
  22. {
  23. cout << n[i] << " ";
  24. }
  25. cout << endl;
  26. cout << "s: ";
  27. for ( int i = 0; i < 10; i++)
  28. {
  29. cout << s[i] << " ";
  30. }
  31. cout << endl;
  32. return 0;
  33. }

输出:


 
 
  1. m: 0 0 0 0 0 0 0 0 0 0
  2. n: 12999640 12979904 0 0 0 0 0 0 0 0
  3. 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个座椅,这些座椅就可以使用了