STL中的單向佇列queue

2022-08-18 10:15:13 字數 1747 閱讀 3499

**自:

stl中的queue指單向佇列,使用時,包含標頭檔案。

關鍵要會用queue,實際上就是掌握該類的各種操作,如下:

常用函式push(e),pop(),front(),back(),size(),empty(),與棧的常用函式較為相似。

在stl中,單向佇列是以別的容器作為底層資料結構,再改變介面使之符合單向佇列的特性。下面就給出單向佇列的函式列表和vs2008中單向佇列的源**。

vs2008中queue單向佇列的源**

template >

class

queue

explicit queue(const _container&_cont) : c(_cont)

bool empty() const

size_type size()

const

reference front()

const_reference front()

const

reference back()

const_reference back()

const

void push(const value_type&_val)

void

pop()

const _container& _get_container() const

protected

: _container c;

//the underlying container

};

由以上可以看出,單向佇列queue封裝了別的底層資料結構(預設為deque),並改動介面以實現自身特性。

下面給出單向佇列的使用範例:

//

單向佇列 queue支援 empty() size() front() back() push() pop()

#include

#include

#include

#include

using

namespace

std;

intmain()

//單向佇列的大小

printf("

%d %d\n

", a.size(), b.size());

//佇列頭和佇列尾

printf("

%d %d\n

", a.front(), a.back());

printf(

"%d %d\n

", b.front(), b.back());

//取單向佇列項資料並將資料移出單向佇列

while (!a.empty())

putchar('\n

');while (!b.empty())

putchar('\n

');return0;

}

由以上可知,stl中的單向佇列queue以deque(雙向佇列)為預設的底層資料結構,但queue的實現也可以用list(單鏈表)作為底層資料結構。

ps:不可以用vector作為底層,原因在於:vector不支援pop_front()。

總之,stl中的單向佇列queue:

1、包含標頭檔案;

2、6個常用操作:size():queue中元素個數

empty():判空

front():取隊首元素

back():取隊尾元素

push(e):入隊尾

pop():刪隊首

STL系列之三 queue 單向佇列

queue單向佇列與棧有點類似,乙個是在同一端訪問資料,另乙個是在一端存入資料,另一端取出資料。單向佇列中的資料是先進先出 first in first out,fifo 在stl中,單向佇列也是以別的容器作為底部結構,再將介面改變,使之符合單向佇列的特性就可以了。因此實現也是非常方便的。下面就給出...

STL系列之三 queue 單向佇列

queue單向佇列與棧有點類似,乙個是在同一端訪問資料,另乙個是在一端存入資料,另一端取出資料。單向佇列中的資料是先進先出 first in first out,fifo 在stl中,單向佇列也是以別的容器作為底部結構,再將介面改變,使之符合單向佇列的特性就可以了。因此實現也是非常方便的。下面就給出...

STL系列之三 queue 單向佇列

queue單向佇列與棧有點類似,乙個是在同一端訪問資料,另乙個是在一端存入資料,另一端取出資料。單向佇列中的資料是先進先出 first in first out,fifo 在stl中,單向佇列也是以別的容器作為底部結構,再將介面改變,使之符合單向佇列的特性就可以了。因此實現也是非常方便的。下面就給出...