例如,如果我有一个包含 5 个元素的指针数组(已满)并且我想在第二个位置插入另一个元素,我将不得不分配另一个数组(大小 + 1),从旧数组中复制第一个元素,插入新元素,然后复制剩余元素。此应用程序不能浪费任何空间。这是到目前为止的代码:
Sometype **newArray=new Sometype*[++Count];
size_t s=sizeof(Array);
memcpy(newArray,Array,s*position);
newArray[position]=new Sometype();
memcpy(newArray+position+1,Array+position,s*(Count-position-1));
delete [] Array;
Array=newArray;
有没有更有效的方法来做这件事,因为这是我的应用程序的瓶颈?我是 C++ 新手,所以我不知道任何高级的东西。矢量可以用于此目的吗?我想我在某处读到它在调整大小时占用了以前使用的空间的两倍。这是真的还是可以修改这种行为?