Il y a un fil dans la section des commentaires dans ce poste sur l'utilisation std::vector::reserve()
vs. std::vector::resize()
.
Voici le code original :
void MyClass::my_method()
{
my_member.reserve(n_dim);
for(int k = 0 ; k < n_dim ; k++ )
my_member[k] = k ;
}
Je crois que pour écrire des éléments dans le vector
la chose correcte à faire est d'appeler std::vector::resize()
pas std::vector::reserve()
.
En fait, le code de test suivant "plante" dans les constructions de débogage dans VS2010 SP1 :
#include <vector>
using namespace std;
int main()
{
vector<int> v;
v.reserve(10);
v[5] = 2;
return 0;
}
Ai-je raison, ou ai-je tort ? Et VS2010 SP1 est-il bon ou mauvais ?