向量的参数传递(摘自c++ priner)

来源:互联网 发布:2014年10月经济数据 编辑:程序博客网 时间:2024/05/21 22:36
#include<iostream>#include<vector>using namespace std;const  LineLength=12;void putValues(vector<int> vec);int main(){int i,j[2];vector<int> vec1(1);//创建一个单元素的vector vec1[0]=i;//初始化单元素的向量putValues(vec1);vector<int> vec2;for(int ix=0;ix<sizeof(j)/sizeof(j[0]);ix++)//vec2[ix]==j[ix]vec2.push_back(j[ix]);putValues(vec2);return 0;}void putValues(vector<int> vec){cout<<"("<<vec.size()<<")<";for(int i=0;i<vec.size();i++){cout<<"\n \t";cout<<vec[i];if((i%LineLength!=LineLength-1)&&(i!=vec.size()-1))cout<<".";}cout<<">\n";}

putValues()的参数是按值传递,当容器类型的参数按值传递的时候,容器以及全部元素都被拷贝到被调函数的本地拷贝中,因为拷贝的效率非常低所以把容器类型的参数声明为引用参数比较好。一个参数不会修应该参数值时,我们把参数声明为const类型的引用更合适,所以putValues应该声明如下:

void  putValues(const vector<int>&){..}

原创粉丝点击