天天看點

c++ swapswap簡介

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

繼續閱讀