Flo*_*oss 8 c++ arrays dynamic
假设我有一个动态数组:
int* integers = new int[100];
Run Code Online (Sandbox Code Playgroud)
有没有办法只删除数组的一部分,如:
int* integers2 = integers + 50;
delete[] integers2;
Run Code Online (Sandbox Code Playgroud)
我想不仅要删除50以上的所有内容,而且如果我在原始整数数组上调用另一个delete [],那么它只会删除正确的内存量而不会尝试删除最初分配的数量和seg错误.
为什么我要这样做:我有一个数组结构的数据结构,我希望能够从一个完整的数组创建这个数据结构.所以我希望能够说出来
int* level1 = integers;
int* level2 = integers + 50;
int* level3 = integers + 100;
Run Code Online (Sandbox Code Playgroud)
但是当不再需要3级时,数据结构将自动删除[] level3.我需要知道这将表现正确,而不仅仅是破坏数组中的所有内容.如果它将然后我需要创建新数组并复制内容,但是出于性能原因避免这样做会很好.
编辑:每个人似乎都得出结论,我应该首先使用动态调整大小容器(即vector,deque)作为我的数据结构.我使用数组级别是有充分理由的(并且它们的大小不同,就像我在我的例子中看起来一样).我只是在寻找一种方法,让我的数据结构有一个构造函数,它接受一个数组或向量,而不需要将原始内容复制到新的数据结构中.