我知道3种方式来声明已知大小的2D矢量,但我不知道哪一种最适合记忆管理。
我没有找到相应的答案,所以我来找你:
1)
vector<vector<float> > a(1000,vector<float>(2000));
for(int i=0;i<1000;i++)
for(int j=0;j<2000;j++)
a[i][j]=i+j;
//print the vector or something else
2) vector<vector<float> > a(1000);
for(int i=0;i<1000;i++)
a[i]=vector<float>(2000);
for(int i=0;i<1000;i++)
for(int j=0;j<2000;j++)
a[i][j]=i+j;
//print the vector or something else
3) vector<vector<float> > a(1000); vector<float> b(2000);
for(int i=0;i<1000;i++)
a[i]=b;
vector<float>().swap(b); //destroy the temporary vector b
for(int i=0;i<1000;i++)
for(int j=0;j<2000;j++)
a[i][j]=i+j;
//print the vector or something else