关于c++ vector capacity、max_size、size、sizeof的区别
来源:互联网 发布:2017天猫数据直播 编辑:程序博客网 时间:2024/06/05 20:25
capacity,如果不重新分配内存,当前已经分配的可以容纳的元素的个数.
max_size最大的可能的元素个数.
size是当前元素个数
max_size最大的可能的元素个数.
size是当前元素个数
sizeof是vector本身的大小(sizeof(vector<int>))
- size()告诉你容器中有多少元素。它没有告诉你容器为它容纳的元素分配了多少内存。
- capacity()告诉你容器在它已经分配的内存中可以容纳多少元素。那是容器在那块内存中总共可以容纳多少元素,而不是还可以容纳多少元素。如果你想知道一个vector或string中有多少没有被占用的内存,你必须从capacity()中减去size()。如果size和capacity返回同样的值,容器中就没有剩余空间了,而下一次插入(通过insert或push_back等)会引发上面的重新分配步骤。
- resize(Container::size_type n)强制把容器改为容纳n个元素。调用resize之后,size将会返回n。如果n小于当前大小,容器尾部的元素会被销毁。如果n大于当前大小,新默认构造的元素会添加到容器尾部。如果n大于当前容量,在元素加入之前会发生重新分配。
- reserve(Container::size_type n)强制容器把它的容量改为至少n,提供的n不小于当前大小。这一般强迫进行一次重新分配,因为容量需要增加。(如果n小于当前容量,vector忽略它,这个调用什么都不做,string可能把它的容量减少为size()和n中大的数,但string的大小没有改变。在我的经验中,使用reserve来从一个string中修整多余容量一般不如使用“交换技巧”,那是条款17的主题。)
0 0
- 关于c++ vector capacity、max_size、size、sizeof的区别
- vector的size、capacity和max_size
- vector容器assign(),capacity(),size(),swap(),get_allocator(),max_size(),reserve(),resize()
- Vector的size和capacity的区别
- vector 中 size()和 capacity()的区别
- Vector 中size和 capacity的区别
- vector中的capacity、size的区别
- vector的capacity和size
- vector里的capacity和size的区别
- C++ STL之 vector的capacity和size属性区别
- C++ vector中size/resize和capacity/reserve的区别
- C++ STL之 vector的capacity和size属性区别
- C++ STL之 vector的capacity和size属性区别
- [C++][STL]容器的capacity、max_size以及内存分配
- [C++][STL]容器的capacity、max_size以及内存分配
- capacity()与size()的区别
- C++基础---string类的capacity/max_size/size/length/empty/reserve/resize
- Vector的使用:resize、size、reserve、capacity
- Codeforces Round #254 (Div. 1) -- C. DZY Loves Colors(分块)
- Spring和SpringMVC父子容器关系初窥
- 常见的图片加载
- 最长上升子序列
- Spring事务管理
- 关于c++ vector capacity、max_size、size、sizeof的区别
- context:component-scan标签的use-default-filters属性的作用以
- C语言的隐式声明
- 说说单片机里的时钟源
- 关于 IDLE 上发生 UnicodeDecodeError 问题的解决办法
- 二、webpack的基本配置(2)
- “无法将虚拟机更改为选定的监视器布局”解决方法
- JavaScript拖拽封装
- 内存变量布局