#include <algorithm> template <class ForwardIterator> void rotate(ForwardIterator first, ForwardIterator middle, Forwarditerator last);
#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 の要素 3 が先頭になるように左方向に回転する printf("v1 の要素 3 が先頭になるように左方向に回転する\n"); rotate(v1.begin(), v1.begin()+2, v1.end()); printf(" v1 :"); for (auto x : v1) printf(" %d", x); printf("\n"); // v1 の要素 5 が先頭になるように左方向に回転し,v2 にコピー printf("v1 の要素 5 が先頭になるように左方向に回転し,v2 にコピー\n"); rotate_copy(v1.begin(), v1.begin()+2, v1.end(), v2.begin()); 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 の要素 3 が先頭になるように左方向に回転する v1 : 2 3 4 0 1 v1 の要素 5 が先頭になるように左方向に回転し,v2 にコピー v1 : 2 3 4 0 1 v2 : 4 0 1 2 3
菅沼ホーム | 本文目次 | 演習問題解答例 | 付録目次 | 索引 |