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