繁体   English   中英

&quot;矢量&quot; 和有什么不一样<int> &amp; 一个 &quot; 和 &quot; 向量<int>一个”?

[英]what's the difference between "vector<int>& a " and "vector<int> a"?

我是 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;
}

这不起作用,我有几个问题。

  1. 为什么我应该使用vector<int>& a而不是vector<int> a
  2. 我的代码有什么问题?

谢谢您的帮助

当您传递vector<int>时,函数会获取该向量的副本。 您可以在函数中使用它做任何您想做的事情,并且您的原始数据不会改变。

当您传递vector<int>&然后函数获取引用,这意味着函数中的任何更改都会修改原始数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM