相关文章  
  • 下一代开源技术的结晶――FedoraCore6
  • qmail+vpopmail+sqwebmail的安装步骤(上)
  • Linux操作系统下双启动环境的陷阱问题(下)
  • 在Linux环境中如何配置WU-FTP服务器(1)
  • 在Linux环境中如何配置WU-FTP服务器(2)
  • Linux操作系统内核对RTC的编程详解(1)
  • Linux操作系统内核对RTC的编程详解(2)
  • 双赢协议:微软为何将不会攻击Linux
  • Linux系统PDA软件开发环境的构建(1)
  • 超线程加快Linux操作系统的速度(下)(4)
  •   推荐  
      科普之友首页   专利     科普      动物      植物        天文   考古   前沿科技
     您现在的位置在:  首页 >>文献 >>培训

    Linux系统编程之C++游戏程序优化(5)1

      

    这还不是STL内存使用的全部。一定要了解当你使用clear方法时,容器是否真的释放掉了它的内存。如果没有,就可能产生内存碎片。比如,如果你开始游戏的时候建立了一个空的vector,在游戏过程中增加元素,然后在游戏restart时调用clear,这时vector未必释放它的全部内存。这个空的vector,可能依然占据了堆中的内存,并使其变成碎片。如果你真的需要这样来实现游戏的话,对这个问题有两种解法。一是你可以在创建vector时调用reserve(),为你可能需要的最大数量的元素保留足够的空间。如果这不可行的话,你可以强迫vector完全释放内存:

       Vector V; 
    
    
    
       // … elements are inserted into V here 
    
    
    
       Vector().swap(v);  // causes v to free its memory页码:[1] [2] [3] [4] [5] [6]1页、共6页 
         

          设为首页       |       加入收藏       |       广告服务       |       友情链接       |       版权申明      

    Copyriht 2007 - 2008 ©  科普之友 All right reserved