Есть же vector<bool> и std::bitset. Но использование этих
классов, если нужна сколько-нибудь сложная работа с битами -- не
эффективно. Они преимущественно позволяют работать с отельными
битами. Но ведь если нужны массовые операции, то их удобнее делать
с машинными словами, а не по отдельным битикам (до 64-х раз
быстрее!) В принципе можно написать свой подобный класс, который
позволяет обеспечивает только адресацию внутри битового массива
(слово и маска, последняя нужна для краёв диапазонов) и обеспечивает пословное применение заданных пользователем функций к частям массива. Но в стандартной библиотеке такого нет.