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