免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: dorodaloo
打印 上一主题 下一主题

[C] 用C实现一个变长数组需要记录几个数据 [复制链接]

论坛徽章:
154
2022北京冬奥会纪念版徽章
日期:2015-08-07 17:10:5720周年集字徽章-年
日期:2022-10-26 16:44:2015-16赛季CBA联赛之深圳
日期:2022-11-02 14:02:4515-16赛季CBA联赛之八一
日期:2022-11-28 12:07:4820周年集字徽章-20	
日期:2023-07-19 08:49:4515-16赛季CBA联赛之八一
日期:2023-11-04 19:23:5115-16赛季CBA联赛之广夏
日期:2023-12-13 18:09:34
11 [报告]
发表于 2017-12-29 15:00 来自手机 |只看该作者
底层代码,越来越少的人花心思去研究了

论坛徽章:
6
数据库技术版块每日发帖之星
日期:2015-11-27 06:20:00程序设计版块每日发帖之星
日期:2015-12-01 06:20:00每日论坛发贴之星
日期:2015-12-01 06:20:0015-16赛季CBA联赛之佛山
日期:2017-03-26 23:38:0315-16赛季CBA联赛之江苏
日期:2017-07-17 10:08:4415-16赛季CBA联赛之北京
日期:2018-03-04 17:01:50
12 [报告]
发表于 2018-01-06 21:22 |只看该作者
回复 11# shang2010

人为什么会产生浮躁的心理呢?

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11
13 [报告]
发表于 2018-01-30 20:56 |只看该作者
我对需要大量插入删除的需求,一般情况用链表来实现。只有只增加,很少删除的用变长数组。

论坛徽章:
6
2015年辞旧岁徽章
日期:2015-03-05 16:13:092015年迎新春徽章
日期:2015-03-05 16:13:092015小元宵徽章
日期:2015-03-06 15:58:1815-16赛季CBA联赛之浙江
日期:2016-11-05 14:38:4115-16赛季CBA联赛之新疆
日期:2016-11-11 18:38:06
14 [报告]
发表于 2018-02-07 09:32 |只看该作者
多记录个容量可以批量增减空间,以缓冲数组长度的频繁改变。

药不择方,合宜而用

论坛徽章:
6
2015年辞旧岁徽章
日期:2015-03-05 16:13:092015年迎新春徽章
日期:2015-03-05 16:13:092015小元宵徽章
日期:2015-03-06 15:58:1815-16赛季CBA联赛之浙江
日期:2016-11-05 14:38:4115-16赛季CBA联赛之新疆
日期:2016-11-11 18:38:06
15 [报告]
发表于 2018-02-07 20:57 |只看该作者
再说几句,时间与空间可以转换:记录数据可以不必另行计算;而通过运算能得到的数据,则可以省去相应存储。这也是根据设计需要合宜而用。

云风说的2倍存储策略可以通过计算出容量而不再记录容量,3楼星星同学提到指针与大小也存在联系可以运算得到,所以理论上那个size也是能省去的(分配器知道指针大小,尤其是自主实现的分配器哦

论坛徽章:
6
2015年辞旧岁徽章
日期:2015-03-05 16:13:092015年迎新春徽章
日期:2015-03-05 16:13:092015小元宵徽章
日期:2015-03-06 15:58:1815-16赛季CBA联赛之浙江
日期:2016-11-05 14:38:4115-16赛季CBA联赛之新疆
日期:2016-11-11 18:38:06
16 [报告]
发表于 2018-02-07 21:18 |只看该作者
因此,极端情况下,一个无缓冲,容量即长度的变长数组,可以只需记录指针这一个数据(虽说长度数据实际在分配器中啦)

论坛徽章:
6
2015年辞旧岁徽章
日期:2015-03-05 16:13:092015年迎新春徽章
日期:2015-03-05 16:13:092015小元宵徽章
日期:2015-03-06 15:58:1815-16赛季CBA联赛之浙江
日期:2016-11-05 14:38:4115-16赛季CBA联赛之新疆
日期:2016-11-11 18:38:06
17 [报告]
发表于 2018-02-07 21:34 |只看该作者
而从另一个角度看,数据并没有实际省掉,只是存在这(你的程序中?)还是存在那(库代码里?)

好吧,洗洗睡了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP