STL系列之三 queue 單向佇列

2021-09-10 22:55:11 字數 3119 閱讀 7704

queue單向佇列與棧有點類似,乙個是在同一端訪問資料,另乙個是在一端存入資料,另一端取出資料。單向佇列中的資料是先進先出(first in first out,fifo)。在stl中,單向佇列也是以別的容器作為底部結構,再將介面改變,使之符合單向佇列的特性就可以了。因此實現也是非常方便的。下面就給出單向佇列的函式列表和vs2008中單向佇列的源**。單向佇列一共6個常用函式(front()、back()、push()、pop()、empty()、size()),與棧的常用函式較為相似。

vs2008中queue單向佇列的源**

//vs2008中 queue的定義 morewindows整理(

template

<_ty> >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來作為其底層資料結構的(對deque不是很了解?可以參閱《stl系列之一deque雙向佇列》)。下面給出單向佇列的使用範例:

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

//by morewindows(

#include

#include

#include

#include

using

namespace

std;int

main

() //單向佇列的大小

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'); return

0;}

再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!

queue單向佇列與棧有點類似,乙個是在同一端訪問資料,另乙個是在一端存入資料,另一端取出資料。單向佇列中的資料是先進先出(first in first out,fifo)。在stl中,單向佇列也是以別的容器作為底部結構,再將介面改變,使之符合單向佇列的特性就可以了。因此實現也是非常方便的。下面就給出單向佇列的函式列表和vs2008中單向佇列的源**。單向佇列一共6個常用函式(front()、back()、push()、pop()、empty()、size()),與棧的常用函式較為相似。

vs2008中queue單向佇列的源**

//vs2008中 queue的定義 morewindows整理(

template

<_ty> >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來作為其底層資料結構的(對deque不是很了解?可以參閱《stl系列之一deque雙向佇列》)。下面給出單向佇列的使用範例:

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

//by morewindows(

#include

#include

#include

#include

using

namespace

std;int

main

() //單向佇列的大小

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'); return

0;}

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中,單向佇列也是以別的容器作為底部結構,再將介面改變,使之符合單向佇列的特性就可以了。因此實現也是非常方便的。下面就給出...