CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    List类的clear()函数

    OpenFOAM
    2
    4
    741
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • V
      Vortex 最后由 编辑

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

      1 条回复 最后回复 回复 引用
      • 刘
        刘雄国 最后由 编辑

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

        V 1 条回复 最后回复 回复 引用
        • V
          Vortex 最后由 编辑

          此回复已被删除!
          1 条回复 最后回复 回复 引用
          • V
            Vortex @刘雄国 最后由 编辑

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

            1 条回复 最后回复 回复 引用
            • First post
              Last post