免费注册 查看新帖 |

Chinaunix

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

vector<bool> 内部实现? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-12-21 23:48 |只看该作者
好像是在中间加了个代理

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
12 [报告]
发表于 2009-12-22 00:09 |只看该作者

回复 #10 modoke 的帖子

如此不济?

望详细说说, 差在哪了?

论坛徽章:
0
13 [报告]
发表于 2009-12-22 09:29 |只看该作者
为什么不用bitset?

论坛徽章:
0
14 [报告]
发表于 2009-12-22 10:58 |只看该作者
回复楼上两位

bitset的参数是常量,不能动态扩展,其次提供的代码,我估计一下效率不如专用的高,他的目的旨在便于操作。

然而对于操作方便 他又比不上用boost的boost::dynamic_bitset

所以总结还是自己写吧!

另外给大家分享一下www.boost.org

文档写得还凑合!

[ 本帖最后由 modoke 于 2009-12-22 12:43 编辑 ]

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
15 [报告]
发表于 2009-12-22 14:28 |只看该作者

回复 #14 modoke 的帖子

我看了下sgi的stl(msvc的stl实在不敢去看……)。 我想, 你说的是bisset的实现效率不高, 是因为里含有循环吧?
除此之外, 还有其他原因么?

参数是常量那个循环才有被解开的机会, vector<bool>就没这个可能。 所以我说biset应该和自己实现固定位图是一样的。
如果需要可增长的位图, vector<bool> 和自己实现也应该差不多。

论坛徽章:
0
16 [报告]
发表于 2009-12-22 14:36 |只看该作者

回复 #15 OwnWaterloo 的帖子

一次8bit的左移 自己写是 一次硬件左移时间吧:BYTE X; X<<1
那么对于一个bitset<8> 一次左移是几个硬件时间??

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
17 [报告]
发表于 2009-12-22 14:42 |只看该作者

回复 #16 modoke 的帖子

兄弟, 至少在i386下, int的运算不会比char慢

论坛徽章:
0
18 [报告]
发表于 2009-12-22 14:57 |只看该作者

回复 #17 OwnWaterloo 的帖子

对了对了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP