swap簡介
swap操作實作交換兩個容器内所有元素的功能。要交換的容器的類型必須比對: 必須是相同類型的容器,而且所存儲的元素類型也必須相同。調用了swap函數後,右操作數原來存儲的元素被存放在左操作數中,反之亦然。
// swap algorithm example (C++98)
#include <iostream> // std::cout
#include <algorithm> // std::swap
#include <vector> // std::vector
int main () {
int x=10, y=20; // x:10 y:20
std::swap(x,y); // x:20 y:10
std::vector<int> foo (4,x), bar (6,y); // foo:4x20 bar:6x10
std::swap(foo,bar); // foo:6x10 bar:4x20
std::cout << "foo contains:";
for (std::vector<int>::iterator it=foo.begin(); it!=foo.end(); ++it)
std::cout << ' ' << *it;
std::cout << '\n';
return 0;
}
輸入三個整數,由小到大的順序輸出。
指針的方式
#include <stdio.h>
int main()
{
void swap (int *p1, int *p2);
int n1, n2, n3;
int *p1, *p2, *p3;
printf("input three integer n1,n2,n3: ");
scanf("%d,%d,%d,&n1,&n2,&n3);
p1=&n1;
p2=&n2;
p3=&n3;
if (n1>n2) swap (p1,p2);
if(n1> n3) swap (p1,p3);
if (n2>n3) swap (p2,p3);
printf("now, the order is:%d,%d,%d\n",n1,n2,n3);
return 0;
}
void swap (int *p1,int *p2)
{
int p;
p= *p1; *p1=*p2;*p2=*p3;
}