所以基本上,我需要的是有28,800个值可以通过索引访问,并且都可以设置为true或false.使用bool或整数数组不是一种选择,因为需要在朗姆酒时使用参数设置大小.使用矢量太慢而且内存密集.我是C++的新手,因此对如何解决这个问题一无所知,有人可以帮忙吗?
编辑:感谢所有评论的人!就像我说的,我是C++编程的新手,你的答案真的帮助我理解了向量背后的功能.因此,在每个人都说矢量不慢之后我再次检查,结果发现我的程序运行速度很慢,因为我在填充矢量时遇到了另一个错误.但特别是midor和一些程序员老兄的回答帮助我让程序比以前运行得更快,谢谢!
使用矢量太慢而且内存密集.
C++专门研究,std::vector<bool>因此它只使用所需的内存.每个"标志"一位(当然+ +簿记开销).
如果你知道它的大小是先验的(你不是根据你的问题),或者如果你知道位图只包含很少的设置位(例如50'000中的1位,但是你),你只能优化该实现.我需要衡量一个更复杂的实现是否值得).对于稀疏位图std::unordered_set<std::uint32_t>,存储设置位可以是一种选择.
但28'800是一个非常小的数字,所以不要浪费你的时间进行优化.你不会从中获得任何好处.
| 归档时间: |
|
| 查看次数: |
133 次 |
| 最近记录: |