永发信息网

c++怎么在一个数组里用代码实现删除一个数

答案:2  悬赏:40  手机版
解决时间 2021-04-23 00:08
  • 提问者网友:绫月
  • 2021-04-22 12:48
c++怎么在一个数组里用代码实现删除一个数
最佳答案
  • 五星知识达人网友:有你哪都是故乡
  • 2021-04-22 13:23
第一种:可以将要删除的数置为一个不可能用到的数,比如INT_MAX,然后遍历的时候跳过这个数,这时删除操作的速度回比较快,不过删除后那个数字的空间仍然被占用,不可被再次利用

第二种:把后面的数依次向前移动一格,占掉要删除的数的位置,这样被删除的数的空间可以被再次利用,不过速度会比较慢
全部回答
  • 1楼网友:拾荒鲤
  • 2021-04-22 14:06
常规意义上的数组不能删除某个元素,静态、动态都不行。对于动态数组,变通的办法就是把被删除元素后面的所有元素都往前挪动一个格,然后把表示数组大小的变量减1。这样样只是模拟了下,数组还是那么大,只是挪出来的空位不用了。如果要增加一个元素,要重新申请一块内存并复制所有旧元素然后释放旧内存。 说了一堆…… 比较好的方法,用c++的标准库容器vector、list。其中vector是顺序存放的数组,和c传统意义上的数组非常类似,但是管理的活标准库包办了。 vector nums; for(int i=10;i!=0;--i) nums.push_back(i);//往这个vector里加入了10次元素 nums.erase(nums.begin());//删除开始的 vector因为是顺序存储的,在插入、删除的时候效率很低,不执行随机访问的话可以用list。具体容器的内容可以看看标准库的书,比我这里说来的清楚多了 o(∩_∩)o~
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯