先优化数据结构和算法,再优化执行代码。
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 }