Как std::bitset выделяет память "под капотом"? C++
Читая про кортежи и другие подобные структуры наткнулся на Std::bitset. Сказано, что он выделяет память по битам. Но как это достигается? Разве в С++ можно выделить, например, один бит памяти? Если да то как. Или же Std::bitset под капотом выделяет большее количество памяти, например 1 байт, а потом просто дает или ограничивает доступ к битам выделенной памяти?
Ответы (1 шт):
Автор решения: Mikhailo
→ Ссылка
Выделить бит нельзя. Минимальная адресуемая память - байт.
Поэтому он выделяет сколько нужно байтов, и работает с битами в них. При этом количество выделяемых байт, очевидно, не меньтше чем (N+7)/8, где N - число бит.