复制矢量 - 矢量

时间:2013-11-05 14:47:21

标签: c++

这是我的代码:

vector<vector<int>> tranches_max(vector<vector<int>> x)
{
   vector<vector<int>> y;
   y[0].swap(x[0]);
   return y;
}
int main() {

vector<vector<int>> x=
{
      {2, 1, 0, 2},
      {0, 1, 0, 3},
      {1, 3, 0, 0},
      {0, 2, 2, 0},
    };
  for (vector< vector<int> >::size_type u = 0; u < x.size(); u++) 
     { for (vector<int>::size_type v = 0; v < x[u].size(); v++) 
       { cout << x[u][v] << " ";
       }
       cout <<endl;
     }
 vector<vector<int>> y= tranches_max(x);    
 for (vector< vector<int> >::size_type u = 0; u < y.size(); u++) 
 { for (vector<int>::size_type v = 0; v < y[u].size(); v++) 
{ cout << y[u][v] << " ";
    }
    cout <<endl;
  }
return 0;
}

我的代码不会生成错误,但会崩溃.. 我认为副本是问题.. 你有什么想法吗?

谢谢。

2 个答案:

答案 0 :(得分:3)

我不确定您尝试做什么,但在您的函数tranches_max中,您访问的元素y[0]超出了向量y的范围。使用空构造函数构造y,使向量为空。也许你需要创建一些初始大小的y?

答案 1 :(得分:0)

  1. Y为空
  2. 此代码不应编译,因为&gt;&gt;之间没有空格这使它成为流操作员