std::vector<int> vec;
vec.reserve(5);
for( int i = 0; i < 5; ++i ) vec[i] = i;
↓codepad の g++ でabortした
> /usr/local/lib/gcc/i686-pc-linux-gnu/4.1.2/../../../../include/c++/4.1.2/debug/vector:192:
> error: attempt to subscript container with out-of-bounds index 0, but
> container only holds 0 elements.
たまたま上手く動いているように見えるだけで
reserveしただけの要素に直接アクセスするのはやはり避けるべきでしょう