什么是在内存方面声明2D矢量的最佳方式

时间:2016-05-12 06:27:14

标签: c++ vector

我知道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

0 个答案:

没有答案