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;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM