C++ 删除随机项后减小数组大小,但保持其余项不变

C++ 删除随机项后减小数组大小,但保持其余项不变,c++,arrays,C++,Arrays,假设我们有一个数据数组,我们用这些数据做一些事情。 在某个时刻,这些数据中的1个将永久删除,再也看不到了 如何重新制作阵列,使我要删除的项目消失,阵列的其余部分保持不变,但尺寸减小 人们都在找我的复制品,但事实并非如此。我不能使用向量,因为我必须让它与数组一起工作 一种方法是创建一个数组列表 int elements = 10; int *arrayList= new int [elements]; //create first arraylist of size 10 int *arr2=

假设我们有一个数据数组,我们用这些数据做一些事情。 在某个时刻,这些数据中的1个将永久删除,再也看不到了

如何重新制作阵列,使我要删除的项目消失,阵列的其余部分保持不变,但尺寸减小


人们都在找我的复制品,但事实并非如此。我不能使用向量,因为我必须让它与数组一起工作

一种方法是创建一个数组列表

int elements = 10;
int *arrayList= new int [elements];  //create first arraylist of size 10
int *arr2= new int [elements/2];  //create 2nd arraylist of size 5
for(int i=0; i<arr2.length; i++)
  arr2[i]=arrayList[i];  //fill in the 2nd array
int元素=10;
int*arrayList=新的int[元素]//创建第一个大小为10的arraylist
int*arr2=新的int[elements/2]//创建第二个大小为5的arraylist

对于(int i=0;i我遵循@crashmstr的答案,这是最接近我想要做的! std容器

复制整个阵列(删除的元素除外)在大文件中行不通,因为它会增加处理时间、周期、缓存未命中等


谢谢!

可能的副本的可能副本。你确定你不想要一个列表吗?在那些中没有基于向量的答案,但是C++的方式是使用容器。如果你不能使用容器,分配新的内存,复制所有的元素,除了删除的元素,然后删除旧的内存。“我不能使用向量,因为我必须让它与数组一起工作。"为什么?这不行…我正在寻找一些东西来减小大小,但不必再次检查整个阵列。因为这将花费大量时间…@Pavlos然后不调整阵列大小?使用链接列表?只需放弃并使用std容器?@嗯,我找到了一个解决方法。我的主管确定这可以通过阵列完成…所以我努力…让它工作。我来看看std容器!谢谢!你用的是“std容器”。你能更具体一点吗?