• 第7章 deque双端队列容器


    /*
    
      第7章 deque双端队列容器
       7.1 deque技术原理
       7.2 deque应用基础
       7.3 本章小结
    
    */
    
    
    //  第7章 deque双端队列容器
    
    //   7.1 deque技术原理 ---------------------------------------------------------------------------------------
    
    //   7.2 deque应用基础 ---------------------------------------------------------------------------------------
    
    
    // 110, []
    #include <deque>
    #include <iostream>    
    int main(void)
    {
      using namespace std;
      deque < int > d;
      d.push_back(13);
      d.push_back(32);
      d.push_back(29);
      for(size_t i = 0; i < d.size(); i++)
        cout << "d[" << i << "] = " << d[i] << endl;
      return 0;
    }
    
    
    
    // 110, it
    
    #include <deque>
    #include <string>
    #include <iostream>
    int main(void)
    {
      using namespace std;
      deque < string > d;
      d.push_back("北京");
      d.push_back("2008");
      d.push_back("奥运");
      deque < string > ::iterator i, iend;
      iend = d.end();
      int j;
      for(i = d.begin(), j = 0; i != iend; i++, j++)
        cout <<  *i;
      cout << endl;
      return 0;
    }
    
    
    // 111 , push_front
    
    #include <deque>
    #include <iostream>
    int main(void)
    {
      using namespace std;
      deque < int > d;
      d.push_back(6);
      d.push_back(7);
      //头部插入
      d.push_front(5);
      for(size_t i = 0; i < d.size(); i++)
      //打印5 6 7
        cout << d[i] << ' ';
      cout << endl;
      //中间位置插入
      d.insert(d.begin() + 1, 9); //在第2个元素前插入9,即5 9 6 7
      for(size_t j = 0; j < d.size(); j++)
        cout << d[j] << ' ';
      cout << endl;
      return 0;
    }
    
    
    // 112, erase, pop
    #include <deque>
    #include <iostream>
    int main(void)
    {
      using namespace std;
      deque < int > d;
      d.push_back(4);
      d.push_back(5);
      d.push_back(3);
      d.push_back(3);
      d.push_back(3);
      d.push_back(6);
      for(size_t i = 0; i < d.size(); i++)
        cout << d[i] << ' ';
      cout << endl;
      //头尾和任意位置删除元素
      d.erase(d.begin() + 1);
      d.pop_front();
      d.pop_back();
      for(size_t j = 0; j < d.size(); j++)
        cout << d[j] << ' ';
      cout << endl;
      //删除所有元素
      d.clear();
      cout << "执行clear()" << endl << "deque元素全部清除" << endl;
      return 0;
    }
    
    
    
    // 113 reverse_iterator
    #include <deque>
    #include <iostream>
    int main(void)
    {
      using namespace std;
      deque < int > d;
      d.push_back(1);
      d.push_back(3);
      d.push_back(5);
      d.push_back(7);
      d.push_back(9);
      //deque元素的前向遍历
      deque < int > ::iterator i, iend;
      iend = d.end();
      for(i = d.begin(); i != iend; i++)
        cout <<  *i << ' ';
      cout << endl;
      //deque元素的反向遍历
      deque < int > ::reverse_iterator ri, riend;
      riend = d.rend();
      for(ri = d.rbegin(); ri != riend; ri++)
        cout <<  *ri << ' ';
      cout << endl;
      return 0;
    }
    
    
    // 114 , swap
    #include <deque>
    #include <iostream>
    using namespace std;
    void print(deque < int >  &d);
    int main(void)
    {
      //d1
      deque < int > d1;
      d1.push_back(11);
      d1.push_back(12);
      d1.push_back(13);
      cout << "d1 = ";
      print(d1);
      //d2
      deque < int > d2;
      d2.push_back(90);
      d2.push_back(91);
      // d2.push_back(92);
      cout << "d2 = ";
      print(d2);
      //d1和d2交换
      d1.swap(d2); // 元素个数不同,一样可以交换
      cout << "d1与d2交换后" << endl;
      cout << "d1 = ";
      print(d1);
      cout << "d2 = ";
      print(d2);
      return 0;
    }
    
    //deque元素打印
    void print(deque < int >  &d)
    {
      for(size_t i = 0; i < d.size(); i++)
        cout << d[i] << ' ';
      cout << endl;
    }
    
    
    
    // 115
    #include <deque>
    #include <string>
    #include <iostream>
    int main(void)
    {
      using namespace std;
      deque < string > d;
      //打印deque为空
      cout << "d是否为空: " << d.empty() << endl;
      //装入元素
      d.push_back("红楼梦");
      d.push_back("源氏物语");
      d.push_back("教父");
      d.push_back("水浒传");
      d.push_back("24史");
      //打印deque所有元素
      deque < string > ::iterator i, iend;
      iend = d.end();
      for(i = d.begin(); i != iend; i++)
        cout <<  *i << "   ";
      cout << endl;
      //打印首元素
      cout << "deque首元素为: " << d.front() << endl;
      //打印末元素
      cout << "deque末元素为: " << d.back() << endl;
      //打印元素个数
      cout << "deque元素个数为: " << d.size() << endl;
      //打印可支持的最大deque元素个数
      cout << "deque最大元素个数为: " << d.max_size() << endl;
      return 0;
    }
    
    
    //   7.3 本章小结 ---------------------------------------------------------------------------------------

    TOP

  • 相关阅读:
    关于控制地址控件的代码
    获取某个设计项列表界面上查询框中的值的代码
    js中不同值的替换
    js截取字符串方法实例
    抛异常语句的种类及区别
    从获取结果中去除重复记录
    泛微E8升级E9代码修改
    中控考勤数据转换
    WEB打印,分页首行自动带出栏目标题
    VS附加进程调试IIS网站
  • 原文地址:https://www.cnblogs.com/xin-le/p/4110476.html
Copyright © 2020-2023  润新知