Seperti (semoga) kita semua tahu, vector<bool>
benar-benar rusak dan tidak dapat diperlakukan sebagai array C. Apa cara terbaik untuk mendapatkan fungsi ini? Sejauh ini, ide yang saya pikirkan adalah:
- Gunakan sebagai
vector<char>
gantinya, atau - Gunakan kelas pembungkus dan miliki
vector<bool_wrapper>
Bagaimana kalian menangani masalah ini? Saya membutuhkan c_array()
fungsionalitas tersebut.
Sebagai pertanyaan sampingan, jika saya tidak memerlukan c_array()
metode ini, apa cara terbaik untuk mengatasi masalah ini jika saya memerlukan akses acak? Haruskah saya menggunakan deque atau yang lainnya?
Edit:
- Saya membutuhkan ukuran dinamis.
- Bagi yang belum tahu,
vector<bool>
dikhususkan sehingga masing-masingbool
butuh 1 bit. Dengan demikian, Anda tidak dapat mengubahnya menjadi array gaya C. - Saya kira "wrapper" adalah istilah yang salah. Saya sedang memikirkan sesuatu seperti ini:
Tentu saja, saya harus membaca my_bool
karena kemungkinan masalah penyelarasan :(
struct my_bool
{
bool the_bool;
};
vector<my_bool> haha_i_tricked_you;