微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

“ vector <int>&a”和“ vector <int> a”之间有什么区别?

如何解决“ vector <int>&a”和“ vector <int> a”之间有什么区别?

我是C ++的初学者。我尝试编写一个程序来逐个旋转向量

即{1,2,3,4,5}-> {2,5,1}-> {3,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>&时,函数将获得引用,这意味着该函数中的任何更改都会修改原始数据。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。