इस पोस्ट में std::vector::reserve()
बनाम का उपयोग करने के बारे में टिप्पणी अनुभाग में एक धागा है 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;
}
Am I right, or am I wrong? And is VS2010 SP1 right, or is it wrong?