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 }
欢迎讨论,相互学习。
cdtxw@foxmail.com