游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: RAINini

在游戏开发中,用std中的string的地方多不多啊

[复制链接]

18

主题

573

帖子

573

积分

高级会员

Rank: 4

积分
573
发表于 2004-11-25 21:06:00 | 显示全部楼层

Re:在游戏开发中,用std中的string的地方多不多啊

如果你用map的话,使用的查找算法同我说的应该差不多,可能都是线形的查找法,这样效率差不多!我记得map使用的pair类来存放键/值,只不过每次插入的话做一次排序操作,我们做的效率应该不会比它差!使用线性的方法比较好!

28

主题

685

帖子

703

积分

高级会员

Rank: 4

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

Re:在游戏开发中,用std中的string的地方多不多啊

1、不是线性查找,是树查找,时间为log2n。
2、每次插入的时候也是树查找,时间也是这么多。
3、你可以使用hash_map来取代map以获得更快的速度,但你显然要会写一个好的hash函数。
vector的查找比map差远了,尤其数据量比较大的时候。

28

主题

685

帖子

703

积分

高级会员

Rank: 4

积分
703
发表于 2004-11-25 21:37:00 | 显示全部楼层

Re:在游戏开发中,用std中的string的地方多不多啊

另:构造析构函数假如编译器优化得好,你又经常使用引用而不是传值的话,可能差不多。

18

主题

573

帖子

573

积分

高级会员

Rank: 4

积分
573
发表于 2004-11-25 22:01:00 | 显示全部楼层

Re:在游戏开发中,用std中的string的地方多不多啊

抱歉,stl学习ing……

6

主题

76

帖子

83

积分

注册会员

Rank: 2

积分
83
 楼主| 发表于 2004-11-26 13:03:00 | 显示全部楼层

Re: 在游戏开发中,用std中的string的地方多不多啊

谢谢各位了,我现在已经用了char *了,
map中的查找不是线性查找

28

主题

685

帖子

703

积分

高级会员

Rank: 4

积分
703
发表于 2004-11-26 13:54:00 | 显示全部楼层

Re:在游戏开发中,用std中的string的地方多不多啊

我想一个想法,未曾得到证实,就是std::string的比较要比char *的比较来得有效,因为假如是std::string相当于是srncmp这样的话预先知道字符个数,在32位或者64位机器上就可以直接32位或者64位比较了,而不需要进行预测。而char *比较是strcmp比较,有心人可以测试一下(用INTEL编译器,假如是VC的话,打开使用内部函数选项)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-23 10:33

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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