把编译器的选择项设置为最严格状态。

 

 1 #include <iostream>
 2 #include <iostream>
 3 #include <algorithm>
 4 #include <vector>
 5 /* run this program using the console pauser or add your own getch, system("pause") or input loop */
 6 
 7 
 8 using namespace std;
 9 
10 //利用类模板生成实例
11 typedef vector < int > IntArray;
12 
13 //显示数组
14 void put_array(int x[],int size) {
15     for(int i=0;i<size;i++)
16         cout<<x[i]<<" ";
17     cout<<endl;
18 }
19 
20 //显示vector容器中的元素
21 void put_vector(IntArray v)
22 {
23     IntArray::iterator theIterator;
24 
25     for (theIterator=v.begin();theIterator!=v.end();++theIterator){
26         cout<<(*theIterator)<<" ";
27     }
28     cout<<endl;
29 }
30 
31 //在main()函数中测试reverse()和reverse_copy()算法
32 int main(int argc, char** argv) {
33 
34 //--------------------------------------------
35 //    reverse()和reverse_copy()算法对普通数组处理
36 //---------------------------------------------
37     int x[]={1,3,5,7,9};
38     cout<<"x[]:";
39     put_array(x,5);
40 
41     //reverse()反转x数组并显示
42     reverse(x,x+5);
43     cout<<"x[]:";
44     put_array(x,5);
45 
46     int y[]={2,4,6,8,10};
47     cout<<"y[]:";
48     put_array(y,5);
49 
50     //reverse_copy()反转y数组的部分元素并拷贝到x数组第2个元素位置
51     reverse_copy(y+1,y+3,x+1);
52     cout<<"x[]:";
53     put_array(x,5);
54     cout<<"y[]:";
55     put_array(y,5);
56 //--------------------------------------------
57 //    reverse()和reverse_copy()算法对vector容器的处理
58 //---------------------------------------------
59     //声明intvector容器和迭代器ii
60     IntArray intvector;
61 
62     //向intvector容器中插入元素
63     for (int i=1; i<=10; i++) {
64         intvector.push_back(i);
65     };
66 
67     //显示intvector容器中的元素值
68     cout << "intvector: "<<endl;
69     put_vector(intvector);
70 
71     //reverse()对于vector容器的处理
72     reverse(intvector.begin(),intvector.end());
73     cout << "intvector: "<<endl;
74     put_vector(intvector);
75 
76     // reverse_copy对于vector容器的处理
77     IntArray temp(5);
78     reverse_copy(intvector.begin()+2,intvector.begin()+7,temp.begin());
79     cout << "temp: "<<endl;
80     put_vector(temp);
81     
82     return 0;
83 }