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;
}