一、->"資料沒有
真正的被交換
"
#include#include#includeusing namespace std;
void sswap(int,int);
int main()
{ int x=3;
int y=5;
sswap(x,y);//int a=x; int b=y;
cout<<"x="《二、->"資料
真正的被交換
"
使用指標 進行交換(
本函式中的形參和實參都並不是x y,而是x y的位址值)
#include#include#includeusing namespace std;
void sswap(int *,int *);
int main()
{ int x=3;
int y=5;
sswap(&x,&y);//int a=x; int b=y;
cout<<"x="《三、->"資料
真正的被交換
"
使用引用的方式進行交換 -》
交換 使用引用
#include#include#includeusing namespace std;
void sswap(int &a,int &b);//&a是對a的引用 &b是對b的引用。
int main()
{ int x=3;
int y=5;
sswap(x,y);//int &a=x; int &b=y;
cout<<"x="<
swap函式的實現方式
預設版本 namespace std 如果類採用指標儲存資料,則預設交換方式會變得低效。因為只用交換兩個指標便能實現兩個物件的交換。因此需要特化版本的swap,由於指標是私有成員,因此需要乙個公有成員函式swap,完成實際的交換。然後由特化版本的swap呼叫該公有成員函式。我們不能修改namespa...
swap函式自定義實現
swap函式大家都很熟悉了,用於將兩個物件進行交換,但是在std中swap需要進行乙個拷貝構造,兩次賦值操作。這對於小物件是可以接受的,但對於較大的物件來書,這個時間可是有點長了,所以可能要在特定的類中自定義swap成員函式。1 對於int型的swap函式,可以使用異或操作符來進行交換,具體看如下 ...
C學習 swap函式的多種實現對比
include include void swap0 int a,int b 交換函式 void swap1 int a,int b void swap2 int a,int b void swap3 int a,int b void swap4 int a,int b void swap5 int...