程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++之路起航——標准模板庫(deque),

C++之路起航——標准模板庫(deque),

編輯:C++入門知識

C++之路起航——標准模板庫(deque),


 deque(雙端隊列):http://baike.baidu.com/link?url=JTvA2cuLubptctHZwFxswvlZvxNdFOxmifsYCGLj5IZF-Tj4rbWLv8JnkqWbA9s2S-9Xzqdo37vcdkBQZfORNq

    需要包括頭文件<deque>;

    定義:

         deque<數據類型> 變量名;

    Eg:

        deque<int> que;//定義了一個整型的雙端隊列;

   基本操作(紅色標識為常用操作):

       que.assign(beg,end) 將[beg; end)區間中的數據賦值給que。        que.assign(n,elem) 將n個elem的拷貝賦值給que。        que. at(idx) 傳回索引idx所指的數據,如果idx越界,拋出out_of_range。        que.back() 返回容器que的最後一個元素的引用。如果que為空,則該操作未定義。        que.begin() 傳回迭代器中的第一個數據地址。        que.clear() 移除容器中所有數據。        que.empty() 判斷容器是否為空。        que.end() 返回一個迭代器,它指向容器que的最後一個元素的下一位置。        que.erase(pos) 刪除pos位置的數據,傳回下一個數據的位置。        que.erase(beg,end) 刪除[beg,end)區間的數據,傳回下一個數據的位置。        que.front() 返回容器que的第一個元素的引用。如果que為空,則該操作為空。        que.insert(pos,elem) 在pos位置插入一個elem拷貝,傳回新數據位置        que.insert(pos,n,elem) 在pos(迭代器)位置插入>n個elem數據。無返回值          que.insert(pos,beg,end) 在pos位置插入在[beg,end)區間的數據。無返回值        que.max_size() 返回容器que可容納的最多元素個數。        que.pop_back() 刪除最後一個數據。        que.pop_front() 刪除頭部數據。        que.push_back(elem) 在尾部加入一個數據。        que.push_front(elem) 在頭部插入一個數據。        que.rbegin() 返回一個逆序迭代器,它指向容器que的最後一個元素。        que.rend() 返回一個逆序迭代器,它指向容器que的第一個元素的前一個位置。        que.resize(num) 重新指定隊列的長度。        que.size() 返回容器中實際數據的個數。        que.swap(que2) 交換容器que和que2中的所有元素。        swap(que1,que2) 交換容器que1和que2中的所有元素。      代碼解釋:            

#include<iostream>
#include<cstdio>
#include<deque>

using namespace std;

int main()
{
deque <int> que;
que.push_back(1);
que.push_back(2);
que.push_back(3);
cout<<"基本操作:"<<endl;
cout<<"隊列遍歷:"<<endl;
deque<int>::iterator ator;
for (ator=que.begin();ator!=que.end();ator++)
cout<<*ator<<endl;
int a;
cout<<"隊首插入元素:";
cin>>a;
que.push_front(a);
cout<<"隊列遍歷:"<<endl;
for (ator=que.begin();ator!=que.end();ator++)
cout<<*ator<<endl;
cout<<"隊尾插入元素:";
cin>>a;
que.push_back(a);
cout<<"隊列遍歷:"<<endl;
for (ator=que.begin();ator!=que.end();ator++)
cout<<*ator<<endl;
cout<<"中間插入元素:";
cin>>a;
que.insert(que.begin()+1/*迭代器位置,根據要求更改*/,1,a);//第一個位置為迭代器位置,該程序插入的為在首位置之後、第一個元素之前插入。元素標號從第0個開始。
cout<<"隊列遍歷:"<<endl;
for (ator=que.begin();ator!=que.end();ator++)
cout<<*ator<<endl;
cout<<"刪除隊首元素:"<<endl;
que.pop_front();
cout<<"隊列遍歷:"<<endl;
for (ator=que.begin();ator!=que.end();ator++)
cout<<*ator<<endl;
cout<<"刪除隊尾元素:"<<endl;
que.pop_back();
cout<<"隊列遍歷:"<<endl;
for (ator=que.begin();ator!=que.end();ator++)
cout<<*ator<<endl;
cout<<"隊列元素個數:"<<que.size()<<endl;
cout<<"隊列清0:"<<endl;
que.clear();
cout<<"隊列元素個數:"<<que.size()<<endl;
return 0;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved