我是C ++的初学者。我尝试编写一个程序来逐个旋转向量
即{1,2,3,4,5}-> {2,3,4,5,1}-> {3,4,5,1,2}
vector<vector<int>> allrot(const vector<int>& a)
{
vector<vector<int>> result;
for (int i = 0; i < a.size(); i ++ ){
rotate(a.begin(), a.begin() + 1, a.end());
result.push_back(a);
}
return result;
}
这不起作用,我有几个问题。
vector<int>& a
而不是vector<int> a
?感谢您的帮助
答案 0 :(得分:2)
当您传递vector<int>
时,函数将获得该向量的副本。您可以在函数中进行任何操作,并且原始数据不会更改。
当您传递vector<int>&
时,函数将获得引用,这意味着该函数中的任何更改都会修改原始数据。