Como (esperançosamente) todos nós sabemos, vector<bool>
está totalmente quebrado e não pode ser tratado como um array C. Qual é a melhor maneira de obter essa funcionalidade? Até agora, as ideias em que pensei são:
- Use um
vector<char>
, ou - Use uma classe de wrapper e tenha
vector<bool_wrapper>
Como vocês lidam com esse problema? Eu preciso da c_array()
funcionalidade.
Como questão lateral, se eu não precisar do c_array()
método, qual é a melhor maneira de abordar esse problema se eu precisar de acesso aleatório? Devo usar um deque ou outra coisa?
Editar:
- Eu preciso de dimensionamento dinâmico.
- Para quem não sabe,
vector<bool>
é especializado para que cada umbool
leve 1 bit. Portanto, você não pode convertê-lo em uma matriz de estilo C. - Eu acho que "invólucro" é um pouco impróprio. Eu estava pensando algo assim:
Claro, então eu tenho que ler em um my_bool
devido a possíveis problemas de alinhamento :(
struct my_bool
{
bool the_bool;
};
vector<my_bool> haha_i_tricked_you;