vector中的resize()和reserve()
来源:互联网 发布:整理文件的软件 编辑:程序博客网 时间:2024/05/17 23:41
resize函数更改size成员的大小,size表示目前容器中实际的元素个数。
reserve函数更改capacity成员的大小,capacity成员表示容器总共可以存储的容器个数。
比如要将vector A的一部分元素筛选出来拷贝到vector B,(假设B是新定义的vector)此时可以用copy_if函数。
但是vector B空间不够,该怎么办呢?
此时应该用reserve函数来改变其容量。
为什么不用resize?其实resize也可以达到同样的效果。但resize的副作用是会调用元素类型的默认构造函数来实际构造对象将vector填满。
来看一段测试代码:
void testReserve()
{cout << "test Reserve" << endl;
vector<mClass> vec;vec.reserve(5);}void testResize()
{cout << "test Resize" << endl;
vector<mClass> vec;vec.resize(5);}int main()
{testReserve();testResize();return 0;
}
程序执行结果:
PS:(1)对于string也同样奏效。
(2)reserve成员只是更改了容器的容量,但并不意味着里面有实际的元素被存储。使用下标方式访问时要注意。
0 0
- vector中的reserve和resize
- vector中的resize()和reserve()
- vector中的resize()和reserve()
- vector中的reserve和resize的区别
- vector中的resize与reserve
- vector resize和reserve区别
- vector的reserve和resize
- vector的reserve和resize
- vector的reserve和resize
- vector的reserve和resize
- vector的reserve和resize
- vector的reserve和resize
- vector的reserve和resize
- vector的reserve和resize
- vector的reserve和resize
- vector的reserve和resize
- vector的reserve和resize
- vector的reserve和resize
- Java中的for循环
- 通过当年第几天,获取日期的方法
- YII执行流程图
- soapui中文操作手册(七)----Web Service Sample Project
- Hssfworkbook 设置单元格格式 setdataformat
- vector中的resize()和reserve()
- 阅读《Android 从入门到精通》(2)——熟悉开发环境
- 从JAVA多线程理解到集群分布式和网络设计的浅析
- 电量统计之一:PowerProfile.java与power_profile.xml
- soapui中文操作手册(八)----Web服务的功能测试案例
- delphi 获取网卡信息(支持多网卡)
- C#:Socket通信
- 个人信息排版左右对齐的TextView
- linux下安装swftools和openOffice