扩展数组对象并移动指针?

时间:2015-10-26 01:09:33

标签: c++ arrays pointers

Term *temp;
temp = new Term[(getCapacity() + 1)];
capacity++;
temp = ptr;
ptr[getEltsInUse()] = T;
eltsInUse++;
delete [] ptr; // reclaim space
ptr = temp; 

我正在使用一个Array对象,在这里我试图在数组满时添加一个对象。在这里,它声明一个更大的临时指针,并将原始文件复制到temp,然后删除原始。最后一行是为了将ptr指针移动到指向与temp相同的东西,但我不确定我做得对。我给出的伪代码是:

  1. 声明期限* temp
  2. 新增一个大小容量的术语数组+ 1,指示临时指向
  3. inc capacity
  4. 将ptr数组的元素复制到临时数组
  5. 将新术语放在最后
  6. inc eltsInUse
  7. 删除ptr以释放旧数组
  8. 设置ptr tpoint临时点(新建数组)
  9. 对不起,如果这是一个非常明显的答案。

1 个答案:

答案 0 :(得分:0)

这样的东西?

Term *temp;
temp = new Term[capacity + 1];     //allocate memory for capacity + 1

for (int i = 0; i < capacity; i++) //copy the old data to the new memory
    temp[i] = ptr[i];

temp[capacity++] = NewElement;     //copy new element to last place in new memory
delete ptr;                        //free old memory.
ptr = temp;