游戏开发论坛

 找回密码
 立即注册
搜索
查看: 9778|回复: 22

飞机该用LIST还是VECTOR

[复制链接]

35

主题

141

帖子

157

积分

注册会员

Rank: 2

积分
157
发表于 2008-9-6 14:53:00 | 显示全部楼层 |阅读模式
最近我写了个飞机游戏,在里面我写了个CLIST模板做数据结构来存放子弹和飞机,但是在屡遍的时候我觉得不是很好,我现在想要用STL重写次,但是我不子弹该用list还是 vector,标准程序库上说,list的屡编是非常慢的,vector也很慢,但是要相对要快点,vector不会在用STL方法删除后释放内存,但是list会,我想问下大家
如果是你们会用哪个容器,谢谢大家了。。。。。。。。。。。。

17

主题

166

帖子

174

积分

注册会员

Rank: 2

积分
174
发表于 2008-9-7 14:27:00 | 显示全部楼层

Re:飞机该用LIST还是VECTOR

大规模数组用vector
其余的用list
飞机子弹不断出现、死亡,自然是用list

62

主题

296

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
QQ
发表于 2008-9-8 20:35:00 | 显示全部楼层

Re:飞机该用LIST还是VECTOR

用vector会快很多,毕竟vector里删除/添加在已经分配一定长度的基础上是几乎零成本的。list的话一般来讲每个节点都是动态分配出来的。当然,可以用vector来做buffer,使用list来索引,或者使用另外一张vector来记录节点的分配情况。

35

主题

141

帖子

157

积分

注册会员

Rank: 2

积分
157
 楼主| 发表于 2008-9-9 16:07:00 | 显示全部楼层

Re:飞机该用LIST还是VECTOR

skice老兄,是不是在说预编译和动态分配内存的问题呀,对于这个问题 LIST的删除不是要比VECTOR好点吗,还有你说的后面的用来什么BUFFER我没听说过,麻烦老兄说清楚点,谢谢。。。。

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
发表于 2008-9-9 21:42:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
发表于 2008-9-9 21:44:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

35

主题

141

帖子

157

积分

注册会员

Rank: 2

积分
157
 楼主| 发表于 2008-9-10 16:45:00 | 显示全部楼层

Re:飞机该用LIST还是VECTOR

我打算存放的是对象本身,如果是要存放指针的话就要做个智能指针,我想可能要麻烦点

35

主题

141

帖子

157

积分

注册会员

Rank: 2

积分
157
 楼主| 发表于 2008-9-10 16:46:00 | 显示全部楼层

Re:飞机该用LIST还是VECTOR

子弹是用NEW来生成的,开始的时候也不子弹有多少的子弹,这样我想要节省点内存吧

35

主题

141

帖子

157

积分

注册会员

Rank: 2

积分
157
 楼主| 发表于 2008-9-10 16:55:00 | 显示全部楼层

Re:飞机该用LIST还是VECTOR

我以前还在想,STL实现的是vaule语意,那么在加入的时候就要复制对象,这样如果对象大点话就要浪费很多的时间,这样不是很好,,,,,所以大家都用STL来储存对象的指针来解决这个问题,是这样的吧???谢谢

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2008-9-12 11:20:00 | 显示全部楼层

Re:飞机该用LIST还是VECTOR

应该储存指针为好,对于中,大数据结构,但是往往又希望value语意。。。stl里头先成的容器就无能为力了。
可以自己实现一个这样的东西,内部采用vector或list存储指针,但按照value访问。方法名要和stl一样,便于运用泛型。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-21 00:31

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表