游戏开发论坛

 找回密码
 立即注册
搜索
123
返回列表 发新帖
楼主: 免费打工仔

关于list和vector的一点点试验

[复制链接]

28

主题

685

帖子

703

积分

高级会员

Rank: 4

积分
703
发表于 2004-10-8 11:08:00 | 显示全部楼层

自己写一个列表能达到最快的速度,或者用数组,但删除

(可以做一些例外的处理,比如数组另外做为一个指针,指向下一个空的。也可以达到比较高的速度),
STL并不能满足各种要求。
hash_map也可以降低一些时间,特别是你本来就需要根据一些关键字查询的时候。虽然还没有标准,不过stlport,vc7.1里面都有了。新的标准中应该会加入他的,
再不行你可以自己写个HASH表,也不烦。

89

主题

822

帖子

847

积分

高级会员

Rank: 4

积分
847
发表于 2004-10-8 11:48:00 | 显示全部楼层

Re:关于list和vector的一点点试验

很好,我也是实用主义者

按我开发游戏的经验,

在服务器端,静态的我就直接使用数组,动态的我常使用list,但有时发现list在删除元素的时候,访问跌代器往往出错,不知道为什么。所以有时删除一个元素以后,我就退出遍历。这样删除多个元素就不是很方便。

在客户端,静态的我有时用vector,大多数情况,我一般使用map,因为经常要根据一些字符串来寻找资源,循环不是很方便,尤其是在换帧的时候往往要从成千上万的资源列表中寻找特定的对象,vector太臃肿了。

我用的是vc60的STL

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2004-10-8 12:09:00 | 显示全部楼层

Re:关于list和vector的一点点试验

基本上在服务器端都是用的HASH表,不过不同的索引算法不同了。
比如做数字ID的索引用个大质数的积就可以了,这个值甚至可以是动态的。
做字符串索引的时候, 有一些比较经典的HASH算法可以用,而地址做索引的时候,又是另外的HASH算法。

总之基本上都是基于HASH表的概念来设计的一系列数据结构,当然一般情况是同样的数据提供多种索引的方法。

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2004-10-8 13:27:00 | 显示全部楼层

Re:关于list和vector的一点点试验

to bigbook2000:
在循环中删除元素,要使迭代器重新归位。
for ( it= v.begin();it != v.end(); it++)
{
   it = v.erase(it);

}

89

主题

822

帖子

847

积分

高级会员

Rank: 4

积分
847
发表于 2004-10-8 13:38:00 | 显示全部楼层

Re:关于list和vector的一点点试验

OK,3ks

1

主题

17

帖子

28

积分

注册会员

Rank: 2

积分
28
发表于 2007-12-3 10:24:00 | 显示全部楼层

Re: 关于list和vector的一点点试验

恩我觉得如果用删除多一些的就用list,用数组的用vector
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-17 20:16

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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