cb04a_c++_数据结构_STL_queue队列-一般用来做系统软件开发
/*cb04a_c++_数据结构_STL_queue队列-一般用来做系统软件开发
队列(只能两端数据)与堆栈(只能一端操作数据)都没有迭代器。,
队列:FIFO先进先出
自适应容器(容器适配器)
栈适配器STL queue
queue<int,queue<int> q;
queue<int,list<int> q;
//但不能用vector做队列。队列要求两端,前后都可以操作。
q.empty();
q.size();
q.front();
q.back();
q.pop();
q.push(item);
cout << "现在队列里面有: " << aaq.size() << endl;
cout << "队首的数据:" << aaq.front() << endl;
cout << "队尾的数据: " << aaq.back() << endl;
aaq.pop();//删除数据,队首的数据
http://www.cplusplus.com/reference/vector/vector/insert/
*/
1 /*cb04a_c++_数据结构_STL_queue队列-一般用来做系统软件开发 2 队列(只能两端数据)与堆栈(只能一端操作数据)都没有迭代器。, 3 队列:FIFO先进先出 4 自适应容器(容器适配器) 5 栈适配器STL queue 6 queue<int,queue<int> q; 7 queue<int,list<int> q; 8 //但不能用vector做队列。队列要求两端,前后都可以操作。 9 q.empty(); 10 q.size(); 11 q.front(); 12 q.back(); 13 q.pop(); 14 q.push(item); 15 16 cout << "现在队列里面有: " << aaq.size() << endl; 17 cout << "队首的数据:" << aaq.front() << endl; 18 cout << "队尾的数据: " << aaq.back() << endl; 19 aaq.pop();//删除数据,队首的数据 20 21 http://www.cplusplus.com/reference/vector/vector/insert/ 22 */ 23 24 #include <iostream> 25 #include <queue> 26 #include <vector> 27 #include <list> 28 #include <deque> 29 30 using namespace std; 31 32 int main() 33 { 34 //queue<int, list<int>> 35 list<int> a; //list 前后都可以添加数据 36 a.push_back(1); 37 a.push_front(2); 38 list<int>::iterator iterList; 39 iterList = a.begin(); 40 a.insert(iterList,11);//在开头的前面插入2 41 ++iterList; 42 a.erase(iterList); //删除迭代器指向的位置 43 44 vector<int> a1; 45 vector<int>::iterator ivec; 46 ivec = a1.begin(); 47 a1.push_back(11);//vector只能尾部添加数据 48 49 //for (ivec = a1.begin(); ivec != a1.end(); ++ivec) 50 // cout << *ivec << endl; 51 //cout <<"vector:"<< a1[0] << endl; 52 //cout << "list: " << a[0] << endl;//error:链表不是数组,没有下标 53 54 55 deque<int> ab; 56 ab.push_back(11); 57 ab.push_front(12); 58 //cout << "deque: "<<ab[0] << endl; 59 60 //queue队列,例子: 61 queue<int, deque<int>> aq;//队尾插入,队首删除 62 queue<int, list<int>> bq; 63 64 queue<int> aaq;//默认是deque; 65 aaq.push(10);//队尾插入 66 aaq.push(5); 67 aaq.push(-1); 68 aaq.push(20); 69 cout << "现在队列里面有: " << aaq.size() << endl; 70 cout << "队首的数据:" << aaq.front() << endl; 71 cout << "队尾的数据: " << aaq.back() << endl; 72 aaq.pop();//删除数据,队首的数据 73 cout << "现在新的队首的数据是:" << aaq.front() << endl; 74 75 while (aaq.size() != 0) 76 { 77 cout << "删除: " << aaq.front() << endl; 78 aaq.pop(); 79 } 80 if (aaq.empty()) 81 { 82 cout << "现在队列里面的数据是空的。" << endl; 83 } 84 85 86 87 88 89 90 91 92 return 0; 93 }
欢迎讨论,相互学习。
cdtxw@foxmail.com