Como (con suerte) todos sabemos, vector<bool>
está totalmente roto y no se puede tratar como una matriz C. ¿Cuál es la mejor forma de obtener esta funcionalidad? Hasta ahora, las ideas en las que he pensado son:
- Utilice a
vector<char>
en su lugar, o - Use una clase contenedora y tenga
vector<bool_wrapper>
¿Cómo manejan ustedes este problema? Necesito la c_array()
funcionalidad.
Como pregunta paralela, si no necesito el c_array()
método, ¿cuál es la mejor manera de abordar este problema si necesito acceso aleatorio? ¿Debería usar un deque o algo más?
Editar:
- Necesito un tamaño dinámico.
- Para los que no lo saben,
vector<bool>
está especializado para que cadabool
tome 1 bit. Por lo tanto, no puede convertirlo en una matriz de estilo C. - Supongo que "envoltorio" es un nombre poco apropiado. Estaba pensando en algo como esto:
Por supuesto, entonces tengo que leer un my_bool
debido a posibles problemas de alineación :(
struct my_bool
{
bool the_bool;
};
vector<my_bool> haha_i_tricked_you;