iter_swap

[機能]

  イテレータで指定した 2 つの要素を交換します.

[形式]
#include <algorithm>

template <class ForwardIterator1, class ForwardIterator2>
    void iter_swap(ForwardIterator1 a, ForwardIterator2 b);		

[使用例]

  1. swap( vector のメンバー関数),iter_swap,及び,swap_ranges の使用方法です.
    #include <stdio.h>
    #include <vector>
    #include <algorithm>
    
    using namespace std;
    
    int main()
    {
    					// 初期設定
    	vector<int> v1 {0, 1, 2, 3, 4};
    	printf("v1 :");
    	for (auto x : v1)
    		printf("  %d", x);
    	printf("\n");
    	vector<int> v2 {10, 20, 30, 40, 50};
    	printf("v2 :");
    	for (auto x : v2)
    		printf("  %d", x);
    	printf("\n");
    					// v1 と v2 を交換する
    	printf("v1 と v2 を交換する(最初の 3 個だけ,swap_ranges)\n");
    	swap_ranges(v1.begin(), v1.begin()+3, v2.begin());
    	printf("  v1 :");
    	for (auto x : v1)
    		printf("  %d", x);
    	printf("\n");
    	printf("  v2 :");
    	for (auto x : v2)
    		printf("  %d", x);
    	printf("\n");
    
    	printf("v1 と v2 を交換する(swap)\n");
    	v1.swap(v2);
    	printf("  v1 :");
    	for (auto x : v1)
    		printf("  %d", x);
    	printf("\n");
    	printf("  v2 :");
    	for (auto x : v2)
    		printf("  %d", x);
    	printf("\n");
    					// v1 の 2 番目と v2 の 3 番目の要素を交換する
    	printf("v1 の 2 番目と v2 の 3 番目の要素を交換する\n");
    	iter_swap(v1.begin()+1, v2.begin()+2);
    	printf("  v1 :");
    	for (auto x : v1)
    		printf("  %d", x);
    	printf("\n");
    	printf("  v2 :");
    	for (auto x : v2)
    		printf("  %d", x);
    	printf("\n");
    
    	return 0;
    }
    			
    (出力)
    v1 :  0  1  2  3  4
    v2 :  10  20  30  40  50
    v1 と v2 を交換する(最初の 3 個,swap_ranges)
      v1 :  10  20  30  3  4
      v2 :  0  1  2  40  50
    v1 と v2 を交換する(swap)
      v1 :  0  1  2  40  50
      v2 :  10  20  30  3  4
    v1 の 2 番目と v2 の 3 番目の要素を交換する
      v1 :  0  30  2  40  50
      v2 :  10  20  1  3  4
    			
[参照]

swap_ranges

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