zl程序教程

您现在的位置是:首页 >  其他

当前栏目

STL---deque

2023-03-14 10:17:04 时间
 1 #include <iostream>
 2 #include <deque>
 3 using namespace std;
 4 typedef deque<int> INTDEQUE;
 5 //从前向后显示deque队列的全部元素
 6 void put_deque(INTDEQUE deque, char *name)
 7 {
 8     INTDEQUE::iterator pdeque;//仍然使用迭代器输出
 9     cout << "The contents of " << name << " : ";
10     for(pdeque = deque.begin(); pdeque != deque.end(); pdeque++)
11         cout << *pdeque << " ";//注意有 "*"号哦,没有"*"号的话会报错
12     cout<<endl;
13 }
14 //测试deqtor容器的功能
15 int main()
16 {
17     //deq1对象初始为空
18     INTDEQUE deq1;
19     //deq2对象最初有10个值为6的元素
20     INTDEQUE deq2(10,6);
21     //声明一个名为i的双向迭代器变量
22     INTDEQUE::iterator i;
23     //从前向后显示deq1中的数据
24     put_deque(deq1,"deq1");
25     //从前向后显示deq2中的数据
26     put_deque(deq2,"deq2");
27     //从deq1序列后面添加两个元素
28     deq1.push_back(2);
29     deq1.push_back(4);
30     cout<<"deq1.push_back(2) and deq1.push_back(4):"<<endl;
31     put_deque(deq1,"deq1");
32     //从deq1序列前面添加两个元素
33     deq1.push_front(5);
34     deq1.push_front(7);
35     cout<<"deq1.push_front(5) and deq1.push_front(7):"<<endl;
36     put_deque(deq1,"deq1");
37     //在deq1序列中间插入数据
38     deq1.insert(deq1.begin()+1,3,9);
39     cout<<"deq1.insert(deq1.begin()+1,3,9):"<<endl;
40     put_deque(deq1,"deq1");
41     //测试引用类函数
42     cout<<"deq1.at(4)="<<deq1.at(4)<<endl;  //数组下标为4的元素
43     cout<<"deq1[4]="<<deq1[4]<<endl;//数组下标为4的元素
44     deq1.at(1)=10;
45     deq1[2]=12;
46     cout<<"deq1.at(1)=10 and deq1[2]=12 :"<<endl;
47     put_deque(deq1,"deq1");
48     //从deq1序列的前后各移去一个元素
49     deq1.pop_front();
50     deq1.pop_back();
51     cout<<"deq1.pop_front() and deq1.pop_back():"<<endl;
52     put_deque(deq1,"deq1");
53     //清除deq1中的第2个元素
54     deq1.erase(deq1.begin()+1);
55     cout<<"deq1.erase(deq1.begin()+1):"<<endl;
56     put_deque(deq1,"deq1");
57     //对deq2赋值并显示
58     deq2.assign(8,1);
59     cout<<"deq2.assign(8,1):"<<endl;
60     put_deque(deq2,"deq2");
61     deq2.clear();
62     put_deque(deq2,"deq2");
63     cout<<deq2.size();
64     return 0;
65 }