这是我的代码:
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;
}我的代码不会产生错误,但它会崩溃。我认为这份文件是问题所在。你有什么想法吗?
谢谢。
发布于 2013-11-05 14:50:50
我不知道您试图做什么,但是在函数tranches_max中,您可以访问元素y[0],这超出了向量y的范围。使用空构造函数构造y,使向量变为空。也许你需要用一些初始尺寸来创建y?
发布于 2013-11-05 14:53:05
https://stackoverflow.com/questions/19791693
复制相似问题