可变大小的bitset [重复](Variable size bitset [duplicate])

2019-07-18 11:41发布

这个问题已经在这里有一个答案:

  • 在初始化定义位集合的大小? 6个回答

我在练阵列上的问题中,我必须找到独特的元素。 现在为这个我的逻辑是找到数组中的元素最大和定义位集为。 但问题是位集需要一个恒定值,因此如何克服这个问题,以下是我的一些问题,对这样的:

一)我可以,以任何机会,定义具有可变大小的位集?
b)若没有,那么什么是要使用的最佳方法vector<bool>vector<char>
C)我知道升压有一个动态的bitset但我这样做的学习,我想知道的其他方法。

Answer 1:

所述std::bitset<N>模板需要预先固定的大小。 所述std::vector<bool>是提供一个可变长度的位向量的C ++标准的方式,它提供了类似于可以增大和缩小一个bitset功能。

至于是否是好还是坏使用vector<char>vector<bool> :在vector<bool>是实现这一目标的一个更直接的方式。 我将通过使用它开始,然后切换到vector<char>如果性能是不能接受的。 在一般情况下,这是很好的尝试先写最清洁,最简单的实现,再到后来的优化。

希望这可以帮助!



文章来源: Variable size bitset [duplicate]