vector は vector に対して特殊化されていて、領域を無駄にしないように、ビット単位で格納されるようになっています。 これは使用する領域が少なくなる反面、 &v[0]+i == &v[i] であるという、vector としての特徴の一つを満たさなくなってしまいます。 他にもいくつか、bool 以外の vector と異なる動作をする箇所があります。 そのため、Twitter や掲示板等で vector の話が出るたびに必ずといっていいほど「あれは使うな。失敗作だ」とか「あれはもう忘れろ」という趣旨の発言が見られます。 そういった場面に遭遇するたびに自分は微妙な気分になります。 実際のところ、「大量のビットを格納したいけれどもメモリを無駄にしたくない」という状況がある*1とき、vector 以外の選択肢はどの程度あるんでしょうか? まず自分で作るという選択肢、これはほとんどの場合は