swapC++11

[機能]

  2 つの値を入れ替えます.

[形式]
#include <utility>

template <class T> void swap(T& a, T& b);
template <class T, size_t N> void swap(T (&a)[N], T (&b)[N]);		

[使用例]

  1. swap の使用方法です.
    #include <stdio.h>
    #include <utility>
    
    using namespace std;
    
    int main()
    {
    			// 配列の交換
    	int a1[] = {1, 2, 3};
    	int a2[] = {4, 5, 6};
    	printf("配列の交換\n");
    	printf("  a1 :");
    	for (auto x : a1)
    		printf("  %d", x);
    	printf("\n");
    	printf("  a2 :");
    	for (auto x : a2)
    		printf("  %d", x);
    	printf("\n");
    	swap(a1, a2);   // a1 と a2 は同じサイズ
    	printf("  swap 後 a1 :");
    	for (auto x : a1)
    		printf("  %d", x);
    	printf("\n");
    	printf("  swap 後 a2 :");
    	for (auto x : a2)
    		printf("  %d", x);
    	printf("\n");
    			// 数値の交換
    	int b1 = 1;
    	int b2 = 10;
    	printf("配列の交換\n");
    	printf("  b1 : %d\n", b1);
    	printf("  b2 : %d\n", b2);
    	swap(b1, b2);
    	printf("  swap 後 b1 : %d\n", b1);
    	printf("  swap 後 b2 : %d\n", b2);
    
    	return 0;
    }
    			
    (出力)
    配列の交換
      a1 :  1  2  3
      a2 :  4  5  6
      swap 後 a1 :  4  5  6
      swap 後 a2 :  1  2  3
    配列の交換
      b1 : 1
      b2 : 10
      swap 後 b1 : 10
      swap 後 b2 : 1			

菅沼ホーム 本文目次 演習問題解答例 付録目次 索引