swap

[機能]

  指定した 2 つの要素を交換します.

[形式]
	#include <algorithm>
	#include <functional>

	template <class T> void swap(T& a, T& b);
		

[使用例]

  1. swap,iter_swap,及び,swap_ranges の使用方法です.
    #include <stdio.h>
    #include <vector>
    #include <algorithm>
    using namespace std;
    
    int main()
    {
    	vector<int> v1, v2;
    	vector<int>::iterator it;
    					// 初期設定
    	printf("**初期状態** v1\n");
    	for (int i1 = 0; i1 < 5; i1++)
    		v1.push_back(i1+1);
    	for (it = v1.begin(); it != v1.end(); it++)
    		printf("  %d", *it);
    	printf("\n");
    
    	printf("**初期状態** v2\n");
    	for (int i1 = 0; i1 < 5; i1++)
    		v2.push_back(10*(i1+1));
    	for (it = v2.begin(); it != v2.end(); it++)
    		printf("  %d", *it);
    	printf("\n");
    					// 2 番目と 3 番目の要素を交換する
    	printf("2 番目と 3 番目の要素を交換する\n");
    	swap(*(v1.begin()+1), *(v1.begin()+2));
    	for (it = v1.begin(); it != v1.end(); it++)
    		printf("  %d", *it);
    	printf("\n");
    					// 4 番目と 5 番目の要素を交換する
    	printf("4 番目と 5 番目の要素を交換する\n");
    	iter_swap(v1.begin()+3, v1.begin()+4);
    	for (it = v1.begin(); it != v1.end(); it++)
    		printf("  %d", *it);
    	printf("\n");
    					// v1 と v2 を交換する
    	printf("v1 と v2 を交換する\n");
    	swap_ranges(v1.begin(), v1.end(), v2.begin());
    	printf("  v1");
    	for (it = v1.begin(); it != v1.end(); it++)
    		printf("  %d", *it);
    	printf("\n");
    	printf("  v2");
    	for (it = v2.begin(); it != v2.end(); it++)
    		printf("  %d", *it);
    	printf("\n");
    
    	return 0;
    }
    
    (出力)
    
    **初期状態** v1
      1  2  3  4  5
    **初期状態** v2
      10  20  30  40  50
    2 番目と 3 番目の要素を交換する
      1  3  2  4  5
    4 番目と 5 番目の要素を交換する
      1  3  2  5  4
    v1 と v2 を交換する
      v1  10  20  30  40  50
      v2  1  3  2  5  4
    			
[参照]

iter_swapswap_ranges

ホームページ 目次 演習解答例目次 付録目次 索引