可变大小的bitset

时间:2013-01-21 06:48:21

标签: c++ data-structures bitset

我在数组上练习一个问题,我必须找到独特的元素。现在我的逻辑是找到数组中的max元素并为其定义bitset。但问题是bitset需要一个恒定的值,所以如何克服这一点,下面是我的一些问题:

a)我是否可以通过任何机会定义具有可变大小的位集? b)如果没有,那么使用vector<bool>vector<char>的最佳方法是什么? c)我知道boost有一个动态的bitset,但是当我这样做学习时,我想知道其他方法。

1 个答案:

答案 0 :(得分:11)

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

至于使用vector<char>还是vector<bool>是好还是坏:vector<bool>是实现这一目标的直接方式。我会先使用它,然后切换到vector<char>,如果性能不可接受的话。一般来说,最好先尝试编写最干净,最简单的实现,然后再进行优化。

希望这有帮助!