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~
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯