List类的clear()函数



  • 最近编程要用到List类。看了下其中的clear()函数发现其只是让成员size变成0,成员指针指向的内存似乎没有清除啊?!这样不会很危险吗?
    clear()函数的注释是这样的
    //- Clear the addressed list, i.e. set the size to zero.
    // Allocated size does not change
    这里的Allocated size和size的区别是什么?
    求大佬们赐教一波~



  • 可以参照vector<>内存管理模式,网上很多资料。不清空内存是为了防止堆空间内存反复allocate和delete,防止重复调用系统资源,这样运行速度下降。allocated size是分配了多少空间,size是你用多少个空间。
    double a[10] = {1,1,1};
    类似这种,分配10个double空间,实际上只用了3个double空间,当然这使用的是栈内存。



  • This post is deleted!


  • @刘雄国 赞,太感谢了。我赶紧去补一下vector<>:146:


Log in to reply