正如(希望)我们都知道的那样,vector<bool>
它完全被破坏了,不能被视为 C 数组。获得此功能的最佳方法是什么?到目前为止,我想到的想法是:
- 使用 a
vector<char>
代替,或 - 使用包装类并拥有
vector<bool_wrapper>
大家是怎么处理这个问题的?我需要这个c_array()
功能。
作为一个附带问题,如果我不需要该c_array()
方法,如果我需要随机访问,解决此问题的最佳方法是什么?我应该使用双端队列还是其他东西?
编辑:
- 我确实需要动态调整大小。
- 对于那些不知道的人,
vector<bool>
是专门的,因此每个bool
需要 1 位。因此,您不能将其转换为 C 样式的数组。 - 我想“包装器”有点用词不当。我在想这样的事情:
当然,my_bool
由于可能的对齐问题,我必须阅读 a :(
struct my_bool
{
bool the_bool;
};
vector<my_bool> haha_i_tricked_you;