But vector<bool> is a "special" specialization, and it stores each value in a single bit, which makes the math to get the value back out again a whole lot more complex because of the bit-logical operaitons need to find individual value. I can certainly see how that would make a 3-fold slowdown - it takes roughly three times more instructions, most of which depend on the previous instruction [so no place for the processor to make use of it's superscalar nature].
--
Mats