#include <algorithm> template <class ForwardIterator1, class Forwarditerator2> ForwardIterator2 swap_ranges(ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2);
#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
菅沼ホーム | 本文目次 | 演習問題解答例 | 付録目次 | 索引 |