vector使命召唤9第三关卡死怎么玩不了

& & &最近需要对一个大数据块进行压缩传输,数据块大小最大将近20个G,最小也就几十M,波动范围比较大。对于大块数据压缩后的存放上有点犹豫,对三种不同的数据结构进行测试,第一种为STL中的vector,第二种为全局缓冲区,第三种为动态缓冲区。& & &测试代码如下:& & &&#include&iostream&&#include&string&&#include&vector&&#include&sys/time.h&&using&namespace&&const&long&&N=;&unsigned&char&bytes_array[N];&unsigned&char&*&bytes_array_&struct&timeval&start,&void&startTimer()&{&&&&&gettimeofday(&start,NULL);&}&void&stopTimer()&{&&&&&gettimeofday(&end,NULL);&}&int&getMs()&{&&&&&return&&(end.tv_sec&-&start.tv_sec)*1000&+&(end.tv_usec-end.tv_usec)/1000;&}&int&main()&{&&&&&long&i;&&&&&&&&&&startTimer();&&&&&vector&unsigned&char&&v(N);&&&&&v.reserve(N);&&&&&for(i=0;i&N;i++)&&&&&&&&&v.push_back(12);&&&&&stopTimer();&&&&&cout&&getMs()&&&&&&&&&&&&startTimer();&&&&&for(i=0;i&N;i++)&&&&&&&&&bytes_array[i]=12;&&&&&stopTimer();&&&&&cout&&getMs()&&&&&&&&startTimer();&&&&&bytes_array_dynamic&=&(unsigned&char&*)malloc(sizeof(unsigned&char)*N);&&&&&for(i=0;i&N;i++)&&&&&&&&&bytes_array_dynamic[i]&=&12;&&&&&stopTimer();&&&&&cout&&getMs()&&&&&&&&return&0;&}&& & 运行结果如下:& & &15000&3000&6000&& & 可见使用vector向量速度最慢,使用全局最快,使用动态开辟空间的方式介于二者之间。本文出自 “相信并热爱着” 博客,转载请与作者联系!
iOS手写签名生成图片&贝赛尔
最新教程周点击榜
7iOS手写签名生成图片&贝赛尔曲线&
微信扫一扫2007年9月 C/C++大版内专家分月排行榜第三2007年8月 C/C++大版内专家分月排行榜第三2006年11月 C/C++大版内专家分月排行榜第三
2007年9月 C/C++大版内专家分月排行榜第三2007年8月 C/C++大版内专家分月排行榜第三2006年11月 C/C++大版内专家分月排行榜第三
2014年10月 C/C++大版内专家分月排行榜第三2014年4月 C/C++大版内专家分月排行榜第三
2014年10月 C/C++大版内专家分月排行榜第三2014年4月 C/C++大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。更多频道内容在这里查看
爱奇艺用户将能永久保存播放记录
过滤短视频
暂无长视频(电视剧、纪录片、动漫、综艺、电影)播放记录,
使用您的微博帐号登录,即刻尊享微博用户专属服务。
使用您的QQ帐号登录,即刻尊享QQ用户专属服务。
使用您的人人帐号登录,即刻尊享人人用户专属服务。
Don_Vector
暂时还没有发布动态哦~
Copyright (C) 2017
All Rights Reserved> vector<char*> 的内存释放有关问题
vector<char*> 的内存释放有关问题
huawuque615 & &
发布时间: & &
浏览:26 & &
回复:9 & &
悬赏:0.0希赛币
vector&char*& 的内存释放问题我在主函数里,有一段代码:
Func(vector &char*&
& vecString,..)
& vector &char*&
& for(int & i=0;i &3;i++)
& char* & pAdd & = & new & char[5];
& ZeroMemory(pAdd,5);
& sprintf(pAdd, &%d &i*);
& vecString.push_back(pAdd);
& pAdd=NULL;
& Func(vecString,...);
//在调用完Func后需要进行vecString的内存释放。由于vecString里存的是char指针,进行内存释放的时候就需要先把char*对应的内存释放,再把vecString的内存释放,我现在不知道如何进行了。
曾经写过一个如下:
int & nSize=vecString.size();
for & (int & i=0;i &nSi++)
delete & [] & vecString[nSize-i-1];
vecString.pop_back();
但似乎工作的并不好。不知各位大虾有何妙计阿。小弟再次谢过啦
如果是字符串数组的话,建议使用vector &string& 或者vector &wstring& 。
huaxiangsi & &
15:07:05 & &
& & (0)(0)优先考虑用vector &string&
既然是C++程序,就应该尽量忘了char *
如果真有好东西不肯用,那就只好
int nSize=vecString.size();
for (int i=0;i &nSi++)
delete [] vecString[i];
vecString.clear();
huaxiangstill & &
15:07:05 & &
& & (0)(0)不需要vecString.pop_back()。vecString析构时会清除自己的资源。
huaxiaogan & &
15:07:05 & &
& & (0)(0)for(int i=0;i &nSi++)
delete []vecString.pop();
把存进去的地址探出来delete就好了
huaxiangsi & &
15:07:05 & &
& & (0)(0)优先考虑用vector &string&
既然是C++程序,就应该尽量忘了char *
如果真有好东西不肯用,那就只好
int nSize=vecString.size();
for (int i=0;i &nSi++)
delete [] vecString[i];
vecString.clear();
huaxiaogan & &
15:07:05 & &
& & (0)(0)最后再清空,或者反向一个一个删除都可以
huaxiangsluo & &
15:07:05 & &
& & (0)(0)void free( char* p )
std::for_each( vecString.begin(), vecString.end(), free);
huaxiangstill & &
15:07:05 & &
& & (0)(0) template
void _SafeReleasePtrVec(T t)
T::iterator iter = t.begin();
for(; iter != t.end(); ++iter)
if((*iter) != 0)
delete [] (*iter);
(*iter) = 0;
huaxiaxq & &
15:07:05 & &
& & (0)(0)new出五个然后一个一个删肯定有问题了,这写法很危险。huaxiaogan & &
15:07:05 & &
& & (0)(0)
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&新手求助,关于Vector3.Distance【unity吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:21,880贴子:
新手求助,关于Vector3.Distance收藏
代码如下图,我要点击实现点击鼠标左键,输出距离,但是输出的距离始终是0,请问是怎么回事,工程是2D的
AutoTDS-V1型全自动热解吸仪是一款20位常温二次全自动热解吸仪,气路采....
输出什么的距离?
我按照你写的写了一遍,没有发现一只为0的现象还有你这个写法是不对的,input.mouseposition是屏幕像素点坐标,跟transform.positon不是一回事,不能求距离的还有2d工程,用vector3也是不合适的
登录百度帐号推荐应用}

我要回帖

更多关于 龙之谷警戒关卡怎么玩 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信