What is the difference between bit-vector and bitset container of stl ? Please explain. To my understanding bitset is the implementation of the concept of bitvector am I right or wrong? What are the other ways to implement bit vector?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
bit_vector
has the same interface as an std::vector
, and is optimised for space. It not a part of standard C++. This documentation claims it is close to an STL vector<bool>
, which presumably is quite close to a standard C++ std::vector<bool>
.
std::bitset is fixed size, and has a different interface.
回答2:
They're different. A std::bitset
has a fixed size known at compile time. This allows it to be implemented very efficiently. A bit vector (I assume you mean std::vector<bool>
) can vary in size like any other std::vector
.