在C语言中,怎么删除一个结构体数组中的数据?

在C语言中,怎么删除一个结构体数组中的数据?,第1张

结构体同样可以看做一个基本数据类型。

删除结构体数组中的一个值,就像删除一个普通数组中的值一样的。

普通数组的删除是将后面的数据向前移动,达到覆盖掉的效果

比如:a[4]要删除第二个元素。那么把a[1]

=

a[2]a[2]

=

a[3]

最后一个不要动,也最好别去访问它,就相当于把第二个元素删除了。

结构体跟上面类似,但是结构体是你自定义的数据,所以在定义中,你要给它重载赋值符号(也就是=),要不然赋值的过程中会出错

数组的好处是,可以以O(1)的复杂度随机访问某个元素,但是插入或删除的话,就比较麻烦了:如果想删除数组中某一个元素的话,就需要把这个元素后面的数据项全部往前移动一位,复杂度是O(N)。

或者换种思路,可以使用“逻辑删除”:在结构体中增加一个标识为“bDeleted",删除一个元素,其实就是把这个标识为设置为1,然后处理数据的时候判断这个标识为是否被设置,对于设置了标识位的元素,就认为它是删除了的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6844249.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-29
下一篇 2023-03-29

发表评论

登录后才能评论

评论列表(0条)

保存