cb01a_c++_数据结构_顺序容器_STL_deque类

/*cb01a_c++_数据结构_顺序容器_STL_deque类
deque是一个动态数组,比vector更加灵活.两者都属于动态数组
deque与vector非常类似
deque可以在数组开头和末尾插入和删除数据
vector只能在数组的末尾插入和删除数据

distance算法
size_t nOffset = distance(a.begin(),iElementLocater);//计算a.begin()与iElementLocator之间的距离
a.begin()位置不变,iElementLocator在变化,所以就可以用在做下标。
*/

 1 /*cb01a_c++_数据结构_顺序容器_STL_deque类
 2 deque是一个动态数组,比vector更加灵活.两者都属于动态数组
 3 deque与vector非常类似
 4 deque可以在数组开头和末尾插入和删除数据
 5 vector只能在数组的末尾插入和删除数据
 6 
 7 distance算法
 8 size_t nOffset = distance(a.begin(),iElementLocater);//计算a.begin()与iElementLocator之间的距离
 9 a.begin()位置不变,iElementLocator在变化,所以就可以用在做下标。
10 */
11 
12 #include <iostream>
13 #include <deque>
14 #include <algorithm>//算法
15 
16 using namespace std;
17 
18 int main()
19 {
20     deque<int> a;
21     a.push_back(3);
22     a.push_back(5);
23     a.push_back(6);
24     a.push_front(2);
25     a.push_front(1);
26     a.push_front(0);
27 
28     for (size_t nCount = 0; nCount < a.size(); ++nCount)
29     {
30         cout <<"a["<<nCount<<"]=" << a[nCount] << endl;
31     }
32     //
33     cout << endl;
34 
35     a.pop_front();//删除前面的数据
36     a.pop_back();//删除后面的数据
37     for (size_t nCount = 0; nCount < a.size(); ++nCount)
38     {
39         cout << "a[" << nCount << "]=" << a[nCount] << endl;
40     }
41 
42     cout <<"使用distance算法"<< endl;
43     //使用deque的迭代器,没有下标
44     deque<int>::iterator iElementLocater;
45     for (iElementLocater = a.begin(); iElementLocater != a.end(); ++iElementLocater)
46     {
47         size_t nOffset = distance(a.begin(),iElementLocater);//计算a.begin()与iElementLocator之间的距离
48         cout << "a[" << nOffset << "]=" <<*iElementLocater << endl;
49     }
50 
51     return 0;
52 }

 

posted @ 2020-02-13 12:36  txwtech  阅读(147)  评论(0编辑  收藏  举报