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-masingboolbutuh 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_boolkarena kemungkinan masalah penyelarasan :(
struct my_bool
{
bool the_bool;
};
vector<my_bool> haha_i_tricked_you;