In the early days of STL, C++ creators decided to include a specialized form of the vector container class, namely vector < bool >. In this specialized vector, bits serve as the container’s elements. This decision was plausible and seemed useful at that time. However, the experience gained in recent years shows that vector <bool> is problematic in many respects. Furthermore, it contradicts some of the basic requirements with which STL containers must comply. The problem is that vector <bool> elements are bits. Yet a bit is not an addressable type—you can’t define a pointer or a reference to a bit nor can you allocate single bits using operator new. Thus, algorithms and iterators can’t cope with vector <bool> properly because they rely on references and pointers. Worse yet, on most implementations, vector <bool> is significantly slower than any other type of vector. The C++ standardization committee is now aware of these difficulties. Chances are good that future versions of the C++ Standard will deprecate vector <bool>. Therefore, it’s advisable to avoid using vector <bool> altogether. If you need a vector of Boolean values, you can use vector <char> instead.

Top Careers at Microsoft
Microsoft has gained its position as one of the top companies in the world, and Microsoft careers are flourishing. This multinational company is efficiently developing popular software and computers with other consumer electronics. It is a dream come true for so many people to acquire a high paid, high-prestige job