要求是这样。每隔1s,给一个数组尾部赋值一个值。这样在完全不知道数组会有多长的情况下,应该怎么样申请内存空间呢。每隔1s给这个数组多一个内存空间吗?这个实现好像只能先删除之前申请的空间,然后申请新的空间,这样之前的数据还需要重新赋值,这样在数据较多时,效率会非常的低。想问,应该如果实现这个功能呢?

解决方案 »

  1.   

    你就用动态数组好了。CArray,CList都可以啊。
      

  2.   


    动态数组应该不行吧,随着时间的增加来增加的数组用动态数组应该会很麻烦。CAarray我看了一下,应该是可以的。CList我也有想过,只是觉得有些牛刀的感觉,所以问出来想学一些新的方法
      

  3.   

    用CAarray就可以,CAarray是每次分配一块内存,应该是这样吧?
    CAarray添加数据前先看现有的内存是否够,如果够则直接算出地址然后赋值,如果不够则另外分配一块内存并加一个链表中保存,然后再算出地址赋值。
    不管是ATL还是STL都有类似的用法,C#中也是CList这种原理。