resize和reserve的区别
转自http://blog.csdn.net/jackywgw/article/details/6248342
首先必须弄清楚两个概念:
1.capacity
指容器在分配新的存储空间之前能存储的元素总数。
2. size
指当前容器所存储的元素个数
在弄清这两个概念以后,很容易懂resize和reserve的区别
1).reserve表示容器预留空间,但并不是真正的创建对象,需要通过insert()或push_back()等创建对象。
resize既分配了空间,也创建了对象。
2).reserve只修改capacity大小,不修改size大小,resize既修改capacity大小,也修改size大小。
#include <iostream>
#include <vector>
using namespace std;
int main(int argc, char *argv[])
{
vector <int> wgw;
cout << "initilize size is: " << wgw.size() << endl;
cout << "initilize capacity is :" << wgw.capacity() <<endl;
wgw.reserve(100);
cout << "wgw size is: " << wgw.size() << endl;
cout << "wgw capacity is :" << wgw.capacity() <<endl;
vector <int>wgw1;
wgw1.resize(200);
cout << "wgw1 size is :" << wgw1.size()<<endl;
cout << "wgw1 capacity is:" << wgw1.capacity() <<endl;
return 0;
}

3).两者的形参个数不一样。
resize带两个参数,一个表示容器大小,一个表示初始值(默认为0)
reserve只带一个参数,表示容器预留的大小。
resize和reserve的区别的更多相关文章
- C++ Daily《2》----vector容器的resize 与 reserve的区别
C++ STL 库中 vector 容器的 resize 和 reserve 区别是什么? 1. resize 改变 size 大小,而 reserve 改变 capacity, 不改变size. 2 ...
- vector中resize()和reserve()的区别
先看看<C++ Primer>中对resize()函数两种用法的介绍: 1.resize(n) 调整容器的长度大小,使其能容纳n个元素. 如果n小于容器的当前的size,则删除多出来的元素 ...
- 函数 resize和reserve的区别
reserve是容器预留空间,但在空间内不真正创建元素对象,所以在没有添加新的对象之前,不能引用容器内的元素.加入新的元素时,要调用push_back()/insert()函数. resize是改变容 ...
- vector中resize和reserve的区别,代码验证
#include <vector> using namespace std; int main() { vector<int> resizeVect; vector<in ...
- vector的resize与reserve的区别
- vector.resize 与 vector.reserve的区别 .xml
pre{ line-height:1; color:#9f1d66; background-color:#a0ffc0; font-size:16px;}.sysFunc{color:#5d57ff; ...
- vector.resize 与 vector.reserve的区别(转载)
转载:https://blog.csdn.net/shuilan0066/article/details/3588478 reserve是容器预留空间,但并不真正创建元素对象,在创建对象之前,不能引用 ...
- vector 的resize与reserve
最近遇到一个坑,简单说来是resize与reserve的功能混淆了. 如下: 如果调用resize的化,编译会出错,如果给Text提供默认构造函数,则可以编译通过,最终输出的结果为10. 如果调用re ...
- vector性能调优之resize与reserve
vector的resize与reserve reserve()函数为当前vector预留至少共容纳size个元素的空间.(译注:实际空间可能大于size) resize() 函数( void resi ...
随机推荐
- splunk的统计分析功能——特定字段的统计功能包括取值分布(+topK,min/max/平均值)
特定字段的统计功能——取值分布,topK,min/max/平均值 例如: date_second 60 值, 100% 的事件 时段平均值 时段最大值 时段最小值 上限值 时段上限值 罕见值 具有此字 ...
- svn上传文件钩子
svn钩子 钩子脚本就是shell的写法,钩子就是被某些版本库事件触发的程序. 常用钩子: post-commit:在提交完成成功创建之后执行该钩子.(提交已经完成,不可更改) 更新之后,通过邮件.微 ...
- hdu-2609-How many(串的最小表示)
题目链接 /* Name:hdu-2609-How many Copyright: Author: Date: 2018/4/24 15:47:49 Description: 串的最小表示 求出每个串 ...
- 在OpenCV2.2后的版本中没有CvvImage类的解决方法(及出现错误:IntelliSense: 未定义标识符 "CvvImage" )
首先在你的解决方案资源管理器中的头文件和源文件下分别添加 CvvImage.cpp 如下图: view类头上加个#include "CvvImage.h" 头文件,应该就可以解决 ...
- js改变select的选中项不触发select的change事件
// test var selectEl = document.querySelector('select') var buttonEl = document.querySelector('butto ...
- Jtable实现
package database; import java.util.Vector; import javax.swing.table.AbstractTableModel; public class ...
- Web打印的处理 方案之普通报表打印
做过许多 的Web项目,大多数在打印页面内容的时刻 ,采用的都是议决 Javascript调用系统内置的打印要领 执行 打印,也就是调用 PrintControl.ExecWB(?,?)实现直接打印和 ...
- Visualforce Page超链接
Salesforce开发者文档:https://developer.salesforce.com/docs/atlas.en-us.pages.meta/pages/pages_quick_start ...
- Azure Managed Disk操作
Azure Managed Disk对原有的Page Blob进行了一次封装.使得Azure VM的Disk操作变得非常简单.本文将介绍实际操作中针对Manage Disk的一些操作. 一.创建Man ...
- python startswith与endswith
如果你要用python匹配字符串的开头或末尾是否包含一个字符串,就可以用startswith,和endswith比如:content = 'ilovepython'如果字符串content以ilove ...