在这篇文章的评论部分有一个关于使用std::vector::reserve()vs.的线程std::vector::resize()。
这是原始代码:
void MyClass::my_method()
{
    my_member.reserve(n_dim);
    for(int k = 0 ; k < n_dim ; k++ )
         my_member[k] = k ;
}
我相信在写元素的vector时候,正确的做法是调用std::vector::resize(),而不是std::vector::reserve()。
事实上,以下测试代码在 VS2010 SP1 的调试版本中“崩溃”:
#include <vector>
using namespace std;
int main()
{
    vector<int> v;
    v.reserve(10);
    v[5] = 2;
    return 0;
}
我是对的,还是我错了?VS2010 SP1 是对的,还是错的?