取地址&符号的重要性
对于我这样的初学者,很容易犯的一个错误,就是交换两个数字用到 swap()函数的时候...很容易把取地址符忽略.而造成错误,以下例子是我看书,并且研究过的一个排列数字大小的程序,希望初学者能看一下...
#include<iostream>
#include<vector>
using namespace std;
void display(vector<int>vec)
{
for(int i=0;i<vec.size();++i)
{
cout<<vec[i]<<" ";
cout<<endl;
}
}
void swap(int &a,int &b) //如果改成void swap(int a,int b) 那么按大小排列数字是不会成功的
{
int temp;
temp=a;
a=b;
b=temp;
}
void list(vector<int>&vec) //同上,注意加上 取地址符
{
for(int i=0;i<vec.size();++i)
for(int j=i+1;j<vec.size();++j)
if(vec[j]<vec[i])
swap(vec[j],vec[i]);
}
int main()
{
int a[8]={8,2,5,7,1,3,4,6};
vector<int>vec(a,a+8);
cout<<"比较以前的数组"<<endl;
display(vec);
list(vec);
cout<<"比较以后的数组"<<endl;
display(vec);
}