先优化数据结构和算法,再优化执行代码

先优化数据结构和算法,再优化执行代码。

 1 #include <iostream>
 2 #include <deque>
 3 
 4 using namespace std;
 5 typedef deque<int> INTDEQUE;
 6 
 7 //从前向后显示deque队列的全部元素
 8 void put_deque(INTDEQUE deque, char *name)
 9 {
10     INTDEQUE::iterator pdeque;
11 
12     cout << "The contents of " << name << " : ";
13     for(pdeque = deque.begin(); pdeque != deque.end(); pdeque++)
14         cout << *pdeque << " ";
15     cout<<endl;
16 }
17 
18 //测试deqtor容器的功能
19 /* run this program using the console pauser or add your own getch, system("pause") or input loop */
20 
21 int main(int argc, char** argv) {
22         //deq1对象初始为空
23     INTDEQUE deq1;   
24     //deq2对象最初有10个值为6的元素  
25     INTDEQUE deq2(10,6);  
26     //deq3对象最初有3个值为6的元素  
27     INTDEQUE deq3(deq2.begin(),deq2.begin()+3);  
28 
29     //声明一个名为i的双向迭代器变量
30     INTDEQUE::iterator i;
31 
32     //从前向后显示deq1中的数据
33     put_deque(deq1,"deq1");
34 
35     //从前向后显示deq2中的数据
36     put_deque(deq2,"deq2");
37 
38     //从前向后显示deq3中的数据
39     put_deque(deq3,"deq3");
40     
41     //从deq1序列后面添加两个元素
42     deq1.push_back(2);
43     deq1.push_back(4);
44     cout<<"deq1.push_back(2) and deq1.push_back(4):"<<endl;
45     put_deque(deq1,"deq1");
46 
47     //从deq1序列前面添加两个元素
48     deq1.push_front(5);
49     deq1.push_front(7);
50     cout<<"deq1.push_front(5) and deq1.push_front(7):"<<endl;
51     put_deque(deq1,"deq1");
52 
53     //在deq1序列中间插入数据
54     deq1.insert(deq1.begin()+1,3,9);
55     cout<<"deq1.insert(deq1.begin()+1,3,9):"<<endl;
56     put_deque(deq1,"deq1");
57 
58     //测试引用类函数
59     cout<<"deq1.front()="<<deq1.front()<<endl;
60     cout<<"deq1.back()="<<deq1.back()<<endl;
61     cout<<"deq1.at(4)="<<deq1.at(4)<<endl;
62     cout<<"deq1[4]="<<deq1[4]<<endl;
63     deq1.at(1)=10;
64     deq1[2]=12;
65     cout<<"deq1.at(1)=10 and deq1[2]=12 :"<<endl;
66     put_deque(deq1,"deq1");
67 
68     //从deq1序列的前后各移去一个元素
69     deq1.pop_front();
70     deq1.pop_back();
71     cout<<"deq1.pop_front() and deq1.pop_back():"<<endl;
72     put_deque(deq1,"deq1");
73 
74     //清除deq1中的第2个元素
75     deq1.erase(deq1.begin()+1);
76     cout<<"deq1.erase(deq1.begin()+1):"<<endl;
77     put_deque(deq1,"deq1");
78 
79     //对deq2赋值并显示
80     deq2.assign(8,1);
81     cout<<"deq2.assign(8,1):"<<endl;
82     put_deque(deq2,"deq2");
83 
84     //显示序列的状态信息
85     cout<<"deq1.max_size(): "<<deq1.max_size()<<endl;
86     cout<<"deq1.size(): "<<deq1.size()<<endl;
87     cout<<"deq1.empty(): "<<deq1.empty()<<endl;
88 
89     //deqtor序列容器的运算
90     cout<<"deq1==deq3: "<<(deq1==deq3)<<endl;
91     cout<<"deq1<=deq3: "<<(deq1<=deq3)<<endl;
92     return 0;
93 }
原文地址:https://www.cnblogs.com/borter/p/9417933.html