Як (сподіваємось) ми всі знаємо, vector<bool>
він повністю зламаний і не може розглядатися як масив C. Який найкращий спосіб отримати цю функціональність? Поки що ідеями, про які я думав, є:
- Використовуйте
vector<char>
замість цього, або - Використовуйте клас обгортки та маєте
vector<bool_wrapper>
Як ви, хлопці, вирішуєте цю проблему? Мені потрібна c_array()
функціональність.
Як побічне запитання, якщо мені c_array()
метод не потрібен , який найкращий спосіб вирішити цю проблему, якщо мені потрібен довільний доступ? Чи слід використовувати декель чи щось інше?
Редагувати:
- Мені потрібен динамічний розмір.
- Для тих, хто не знає,
vector<bool>
спеціалізується так, що коженbool
бере 1 біт. Таким чином, ви не можете перетворити його на масив у стилі C. - Я думаю, "обгортка" є дещо помилковою назвою. Я думав приблизно так:
Звичайно, тоді мені доведеться прочитати проект my_bool
через можливі проблеми вирівнювання :(
struct my_bool
{
bool the_bool;
};
vector<my_bool> haha_i_tricked_you;