Jak (miejmy nadzieję) wszyscy wiemy, vector<bool>
jest całkowicie zepsuty i nie może być traktowany jako tablica C. Jaki jest najlepszy sposób na uzyskanie tej funkcjonalności? Do tej pory pomysły, o których myślałem, to:
- Użyj
vector<char>
zamiast tego lub - Użyj klasy opakowania i użyj
vector<bool_wrapper>
Jak radzicie sobie z tym problemem? Potrzebuję c_array()
funkcjonalności.
Na marginesie, jeśli nie potrzebuję c_array()
metody, jaki jest najlepszy sposób rozwiązania tego problemu, jeśli potrzebuję dostępu losowego? Powinienem użyć deque czy czegoś innego?
Edytować:
- Potrzebuję dynamicznej zmiany rozmiaru.
- Dla tych, którzy nie wiedzą,
vector<bool>
jest wyspecjalizowany, więc każdybool
zajmuje 1 bit. Dlatego nie możesz przekonwertować go na tablicę w stylu C. - Myślę, że „opakowanie” jest trochę mylące. Myślałem coś takiego:
Oczywiście muszę wtedy przeczytać my_bool
ze względu na możliwe problemy z wyrównaniem :(
struct my_bool
{
bool the_bool;
};
vector<my_bool> haha_i_tricked_you;