vector dosen’t satisfy the requirements of an STL constainer, you are best off not using it; and deque and biset are alternative data structures that will almost certainly satisfy your need for the capabilies promised by vector.
template <typename Allocator>
vector<bool, Allocator> {
public:
class reference {...};
reference operator[](size_type n);
...
};
vector<bool> v;
bool *pb = &v[0]; // error! the expression on the right is of type
// vector<bool>::reference*, not bool*