当前位置: 首页 > news >正文

北京网站建设+++招聘信息如何将下载好的网站模板用到织梦程序上

北京网站建设+++招聘信息,如何将下载好的网站模板用到织梦程序上,网站群发手机短信,淮南矿业集团廉政建设网站resize和reserve的区别 reserve#xff1a;预留空间#xff0c;但不实例化元素对象。所以在没有添加新的对象之前#xff0c;不能引用容器内的元素。而要通过调用push_back或者insert。 resize#xff1a;改变容器元素的数量#xff0c;且会实例化对象#xff08;指定或…resize和reserve的区别 reserve预留空间但不实例化元素对象。所以在没有添加新的对象之前不能引用容器内的元素。而要通过调用push_back或者insert。 resize改变容器元素的数量且会实例化对象指定或默认0。因此调用resize之后可以直接引用容器内的对象。此时再调用push_back是加在这个新的空间后面即size之后的。同样也会触发push_back()的空间预留机制。 如果newSize size则该容器后部的元素会被析构且resize可能会使迭代器失效对于所有的容器类型如果resize操作压缩了容器则指向已删除的元素的迭代器失效。同样的扩容也可能导致迭代器失效因为原来迭代器指向的位置的内存已经被释放因为内存被移动到了别的位置。比如如果count大于size则会扩容如果后续空间不够需要寻找一块足够的空间然后把元素逐个复制过去。 当元素写入不超过预留空间时reserve()不涉及内存的重新分配resize()会涉及内存的重新分配。 reserve()只修改capacity大小不修改size大小resize()既修改capacity大小也修改size大小。 如果reserve和resize的newSize大于capacity都会涉及内存分配。 申请和写入大内存时三者的差异 以下的代码示例是在Linux平台下运行的。 void test_reserve() {clock_t start clock();std::vectorint arr1;arr1.reserve(1000000000);/* 10^9 * 4 / 1024 / 1024 3814MB */for(int i 0; i 1000000000; i){arr1.push_back(i);}std::cout 耗时 (clock() - start) std::endl;std::cout size: arr1.size() capacity: arr1.capacity() std::endl;/*耗时13.52 秒size:1000000000 capacity:1000000000*/ }void test_resize() {clock_t start clock();std::vectorint arr1;arr1.resize(1000000000);/* 10^9 * 4 / 1024 / 1024 3814MB */for(int i 0; i 1000000000; i){arr1[i] i;}std::cout 耗时 (clock() - start) std::endl;std::cout size: arr1.size() capacity: arr1.capacity() std::endl;/*耗时6.39秒size:1000000000 capacity:1000000000*/ }class test {public:test() {std::cout 构造 std::endl; }~test() {std::cout 析构 std::endl; } };int main() {clock_t start clock();std::vectorint arr;/* 10^9 * 4 / 1024 / 1024 3814MB */for(int i 0; i 1000000000; i){arr.push_back(i);}std::cout 耗时 (clock() - start) std::endl;std::cout size: arr.size() capacity: arr.capacity() std::endl;/*耗时18.68 秒size:1000000000 capacity:1073741824*/test_reserve();test_resize();return 0; }可以看到reserve相比原生操作快了5秒而resize后直接通过下标写入比原生快了12秒提升还是很可观的。但是前提是要知道元素的个数。 在进程运行的过程中可以通过shell脚本实时查看进程的内存占用。 这个脚本的意思是死循环提取ps aux指令的第一行即各种参数的标题并且再提取a.out即程序名的各项信息之后打印换行睡眠1秒。达到每隔一秒监控一次内存占用的效果。 while true; do ps aux | head -1 ; ps aux | grep a.out; printf ————————————————————————————————————————————\n\n ; sleep 1; done上图是使用reserve的情况可以看到VSZ即虚拟内存在调用reserve之后就飙到了4GB因为Linux是内存延时分配的即使用了该内存空间才实际分配物理内存。又因为vector的扩容方式是1.5倍扩容因此可以看到在push_back的过程中RSS即实际物理内存是逐渐上升的。 而上图是使用resize的情况因为resize是实际分配了空间并会实例化元素的因此物理内存占用上升的非常快几乎几秒就占满了4GB。
http://www.hkea.cn/news/14372606/

相关文章:

  • eclipse 网站开发过程网站配色方案橙色
  • 投票网站定制乐清市建设规划局网站
  • 可以做来电名片的网站学编程从哪儿入手
  • 网站建设标准 方案书微信二维码制作网站
  • 建小公司网站网站建设 app
  • 酒类网站建设方案分类网站上怎么做锚文本
  • 宁波做网站的公司哪家好南昌大学南昌网站建设公司
  • 织梦网站上传数据库原创先锋 北京网站建设
  • 怎么看别人网站怎么做的优化wordpress稳定吗
  • 营销型网站是什么样的赚钱黑渠道
  • 邯郸手机网站建设服务专门开发小程序的公司
  • 建设银行网站注册用户名做红包网站是犯法的吗
  • 游戏开发网站开发汕头人才网
  • 怎么做盗版网站吗查看网站开发语言方法
  • 廊坊网站建设招聘前端静态网页模板
  • wordpress 视频图片网站wordpress 腾讯cdn
  • 提交网站给百度腾讯企业邮箱域名购买
  • 怎么做html网站php可以做视频网站
  • 淘宝客优惠券网站怎么做的网页设计作业百度云
  • 微信网站建设企业集团官网及站群网站建设
  • 网站建设要学哪些东西免费学服装设计的网站
  • 沈阳网站建设团队苏州专业网站制作
  • 怎么查网站域名办公室装修效果图图片大全
  • 网站建设开场介绍话术网站备案号被注销
  • 网站建设难点网站公司做的网站被攻击
  • 网站的js效果网站上的销售怎么做
  • 网站建设销售渠道上海 顶尖 网站设计
  • 怎么查看网站disallow360建筑网兼职
  • 怎么免费建设自己网站重庆网站推广专家
  • 网站后端开发流程奢侈品网站策划方案