關於deque容器 雙端佇列

2021-08-20 09:55:20 字數 1561 閱讀 4302

如果不是vector每次配置新的空間時都留有餘裕,其成長假象所帶來的代價是非常昂貴的。

deqt;//預設構造形式

deque(begin, end);//建構函式將[beg, end)區間中的元素拷貝給本身。

deque(n, elem);//建構函式將n個elem拷貝給本身。

deque(const

deque &deq);//拷貝建構函式。

assign(begin, end);//將[beg, end)區間中的資料拷貝賦值給本身。

assign(n, elem);//將n個elem拷貝賦值給本身。

deque& operator=(const deque &deq); //過載等號操作符

swap(deq);// 將deq與本身的元素互換

deque.size();//返回容器中元素的個數

deque.empty();//判斷容器是否為空

deque.resize(num);//重新指定容器的長度為num,若容器變長,則以預設值填充新位置。如果容器變短,則末尾超出容器長度的元素被刪除。

deque.resize(num, elem); //重新指定容器的長度為num,若容器變長,則以elem值填充新位置,如果容器變短,則末尾超出容器長度的元素被刪除。

push_back(elem);//在容器尾部新增乙個資料

push_front(elem);//在容器頭部插入乙個資料

pop_back();//刪除容器最後乙個資料

pop_front();//刪除容器第乙個資料

at(idx);//返回索引idx所指的資料,如果idx越界,丟擲out_of_range。

operator;//返回索引idx所指的資料,如果idx越界,不丟擲異常,直接出錯。

front();//返回第乙個資料。

back();//返回最後乙個資料

insert(pos,elem);//在pos位置插入乙個elem元素的拷貝,返回新資料的位置。

insert(pos,n,elem);//在pos位置插入n個elem資料,無返回值。

insert(pos,beg,end);//在pos位置插入[beg,end)區間的資料,無返回值。

clear();//移除容器的所有資料

erase(beg,end);//刪除[beg,end)區間的資料,返回下乙個資料的位置。

erase(pos);//刪除pos位置的資料,返回下乙個資料的位置。

Deque雙端佇列容器

1 deque雙端佇列容器建立deque物件 可建立無任何元素的或者具有n個元素的或者具有n個元素的並賦初值的 include include include include include include include include include include include includ...

deque雙端佇列容器

c 中的stl還是比較有用的,尤其是在做科研實現演算法的時候,之前也有用過,但是沒怎麼系統地學過,因此最近找了本書,大致瀏覽了一下,葉志軍的那本 c stl開發技術導引 科普 入門性質的一本書,寫得比較淺 呵呵,勿噴 下面的內容大部分是摘自該書。deque雙端佇列容器 double ended qu...

deque雙端佇列容器

deque採用分塊的星星儲存結構來儲存資料,每塊的大小一般為512個位元組,稱為乙個deque塊,所有的deque塊使用乙個map塊進行管理,每個map資料項紀錄各塊的首位址。deque塊在頭部和尾部都可以插入和刪除元素,而不需要移動其他元素 使用push back 方法在尾部插入元素,會擴張佇列 ...