cocos2dx3.2 嘿别犯傻了,reserve是保留而不是反转
来源:互联网 发布:java程序员怎么认证 编辑:程序博客网 时间:2024/04/30 01:38
咚咚,查看cocos2dx3.2引擎关于内存管理部分,看到这个:
PoolManager::PoolManager()
{
_releasePoolStack.reserve(10);
}
std::vector<AutoreleasePool*> _releasePoolStack;
百度下:具体参考http://www.cnblogs.com/qlee/archive/2011/05/16/2048026.html
vector 的reserve增加了vector的capacity,但是它的size没有改变!而resize改变了vector的capacity同时也增加了它的size!
原因如下:
reserve是容器预留空间,但在空间内不真正创建元素对象,所以在没有添加新的对象之前,不能引用容器内的元素。加入新的元素时,要调用push_back()/insert()函数。
#include <iostream>
#include <vector>
using namespace std;
int main()
{
std::vector<int> data;
data.reserve(10);
data.push_back(10);
data.push_back(12);
data.push_back(13);
data.push_back(14);
data.push_back(15);
cout << data.size() <<" " << data.capacity() <<endl;
for (int i =0; i < data.capacity(); ++i) {
cout << data[i] <<endl;
}
data.clear();
cout << data.size() <<" " << data.capacity() <<endl;
data.resize(20);
cout << data.size() <<" " << data.capacity() <<endl;
data.push_back(16);
data.push_back(17);
cout << data.size() <<" " << data.capacity() <<endl;
for (int i =0; i < data.capacity(); ++i) {
cout << data[i] <<endl;
}
return0;
}
结果如下:
5 10
10
12
13
14
15
0
0
0
0
0
0 10
20 20
22 40
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
16
17
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Program ended with exit code: 0
从结果看出,确实 resize和reserve都不好覆盖原来动数据
- cocos2dx3.2 嘿别犯傻了,reserve是保留而不是反转
- 【拓扑排序】BFS 别犯傻
- 国人们,别在这几个问题上继续“犯傻”了(上)
- 今天犯傻了
- 保留空间(reserve)
- 老徐叨叨叨:别犯傻了!小程序代理套路深,老徐不忿直接来喷
- 实战c++中的vector系列--copy set to vector(别混淆了reserve和resize)
- 今天犯傻了,突然想不明白,为啥一个数据cpu能够分辨出来是数据还是地址
- 别错怪了命运,是你自己浪费了机会
- TeeChartPro_v7.06中预览函数是TeePreview而不是ChartPreview了
- 是选择决定了你的一生,而不是努力
- 一些感慨,一些感动(大部分时间是犯傻)
- 别争了!原来微点遭遇的是自然灾害!
- 有时候批处理是你的高效帮手,别忘了
- 是啥决定了孩子的xing别
- 别再说iOS7是扁平化设计了,好吗?
- 流量劫持别抵制了,全站HTTPS是王道!
- 别开发APP了,这不是在开玩笑
- 计蒜客024-函数规律
- any object does not have a member named generator
- iOS开发解决方案:An error was encountered while running(Domain=FBSOpenApplicationErrorDomain, Code=4)
- 83屏幕锁屏时,widget不再更新(省电优化)
- 通过dfs求排列
- cocos2dx3.2 嘿别犯傻了,reserve是保留而不是反转
- 互斥量
- python创建快捷方式
- Hibernate动态条件查询并分页
- PowerDesigner生成SQL脚本时表名、字段名带引号问题及解决方法
- Struts2的默认action配置真的是bug?
- 十进制与任意进制的转换
- Linux安装中文输入法(Google拼音输入法)
- swift中http请求URL中空格问题