这是我的代码:
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;
}
我的代码不会生成错误,但会崩溃.. 我认为副本是问题.. 你有什么想法吗?
谢谢。
答案 0 :(得分:3)
我不确定您尝试做什么,但在您的函数tranches_max
中,您访问的元素y[0]
超出了向量y
的范围。使用空构造函数构造y,使向量为空。也许你需要创建一些初始大小的y?
答案 1 :(得分:0)