删除结构体数组中的一个值,就像删除一个普通数组中的值一样的。
普通数组的删除是将后面的数据向前移动,达到覆盖掉的效果
比如:a[4]要删除第二个元素。那么把a[1]
=
a[2]a[2]
=
a[3]
最后一个不要动,也最好别去访问它,就相当于把第二个元素删除了。
结构体跟上面类似,但是结构体是你自定义的数据,所以在定义中,你要给它重载赋值符号(也就是=),要不然赋值的过程中会出错
数组的好处是,可以以O(1)的复杂度随机访问某个元素,但是插入或删除的话,就比较麻烦了:如果想删除数组中某一个元素的话,就需要把这个元素后面的数据项全部往前移动一位,复杂度是O(N)。或者换种思路,可以使用“逻辑删除”:在结构体中增加一个标识为“bDeleted",删除一个元素,其实就是把这个标识为设置为1,然后处理数据的时候判断这个标识为是否被设置,对于设置了标识位的元素,就认为它是删除了的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)