要定义一个16位的位集,它将类似于:
std::bitset<16> bs(0x123);
如果让我设计一个bitset类,我可能会这样做:
mine::bitset bs(16, 0x123);
是否有任何理由通过模板实现std :: bitset?
在某些情况下,这是否应该适用?
答案 0 :(得分:4)
是否有任何理由通过模板实现std :: bitset?这是一个我们应该在某些情况下应用的好模式吗?
因为std::bitset
被设计为静态位集。在某些情况下,编译时的大小,将非常有用,特别是对编译器,以优化您的程序。如果您想要动态位集,可以使用boost::dynamic_bitset
。就像std::array
和std::vector
一样,对于静态大小的容器和动态大小的容器,总有一个地方。