两者之间是否存在明显的差异,使得某些人在某些情况下的使用比其他情况更实用?有人可以概述这里的差异以及两者的相关表现信息吗?
答案 0 :(得分:0)
“bitvector”std::vector< bool >
是堆上的动态大小的数组,它满足Container类的大多数要求。为此,它定义了一个时髦的iterator
类,它按照棘手的代理对象设计模式返回reference
个对象。
std::bitset
是一个静态大小的数组,其存储内嵌于对象。它没有迭代器,只有访问运算符,如下标。
按位访问部分将执行类似的操作。 vector
在创建和销毁时也会调用operator new
和operator delete
,并在必要时偶尔重新分配。