簡體   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