zoukankan      html  css  js  c++  java
  • 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 }
    欢迎讨论,相互学习。 txwtech@163.com
  • 相关阅读:
    Microsoft .NET Framework 2.0实现发送邮件(Email)总结
    Microsoft .NET Framework 2.0对文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等)实现汇总
    抽象类
    WingIDE 单步调试 Uliweb Python 代码
    Android 4.0 SDK的离线方式安装
    .NET 3.5 中WCF客户端代理性能改进以及最佳实践
    在linux上部署Redmine
    认识jQuery mobile 框架,资源,书籍
    如何使用搜索技巧来成为一名高效的程序员
    Management Console 工具管理类软件通用开发框架(开放源码)
  • 原文地址:https://www.cnblogs.com/txwtech/p/12307191.html
Copyright © 2011-2022 走看看