1 #include<iostream>
2 #include<cstdlib>
3 using namespace std;
4 #include<algorithm>
5 #include<vector>
6
7
8 /*
9 5.3.3 merge
10 两个容器元素合并,并存储到另一容器中
11 merge(iterator beg1, iterator end1, iterator beg2, iterator end2, iterator dest);
12 // 容器元素合并,并存储到另一容器中
13 // 注意: 两个容器必须是有序的
14 // beg1 容器1开始迭代器 // end1 容器1结束迭代器 // beg2 容器2开始迭代器 // end2 容器2结束迭代器 //
15 dest 目标容器开始迭代器
16 merge合并的两个容器必须的有序序列
17
18 5.3.4 reverse
19 将容器内元素进行反转
20 reverse(iterator beg, iterator end);
21 // 反转指定范围的元素
22 // beg 开始迭代器
23 // end 结束迭代器
24 reverse反转区间内元素,面试题可能涉及到
25 */
26
27
28 void myprint(int val)
29 {
30 cout << val << " ";
31 }
32
33
34 void test533()
35 {
36 vector<int> v1;
37 vector<int> v2;
38 for(int i=0; i<10; i++)
39 {
40 v1.push_back(i);
41 v2.push_back(i+1);
42 }
43
44 vector<int> v_target;
45 v_target.resize(v1.size() + v2.size());
46
47 merge(v1.begin(), v1.end(), v2.begin(), v2.end(), v_target.begin());
48
49 for_each(v_target.begin(), v_target.end(), myprint);
50 cout << endl;
51 }
52
53
54 void test534()
55 {
56 vector<int> v1;
57 for(int i=0; i<10; i++)
58 {
59 v1.push_back(i);
60 }
61
62 cout << "反转前:" << endl;
63 for_each(v1.begin(), v1.end(), myprint);
64 cout << endl;
65
66 reverse(v1.begin(), v1.end());
67
68 cout << "反转后:" << endl;
69 for_each(v1.begin(), v1.end(), myprint);
70 cout << endl;
71 }
72
73
74 int main()
75 {
76 test533();
77 test534();
78
79 system("pause");
80 return 0;
81 }


18.3.2【STL常用排序算法merge、reverse】_#include