奧林匹亞資訊班

7/27

講師:吳崇維(wayne)

https://larry850806.github.io/2016/06/06/STL1/

STL 基本容器

STL 容器

 stack

STL

 

STL 是 Standard Template Library 的縮寫,他提供了許多好用的標準模板函式庫,只要引入標頭檔就可以作使用。

STL們:

stack

queue

vector

set

map

priority_queue

...

STL

使用方法

 

先前提到過stack 這個資料結構

也自己用陣列實作過

以下先稍微複習,再看如何用STL引出stack !

STL們:

stack

queue

vector

set

map

priority_queue

...

如何用STL引出stack?

STL stack 的幾個操作

  • top()
  • pop()
  • push()
  • size()

STL使用

 

首先如果需要用stack

需要引入 #include <stack>

再來如同宣告變數一樣,要宣告容器:stack<int> a;

意思就是有一個stack,裡面裝int,stack的名字叫做a

 

再來用到stack的功能則可以這樣用

a.top()                  // 回傳stack最上面的元素

a.push(10)          //  把一個元素放進stack裡面,沒有回傳值

a.pop()                //  把一個元素從stack拿出來

a.size()                //   回傳現在stack中有幾個元素

STL 容器

 queue

Queue

 

Queue 是隊列的意思

跟日常生活的排隊一樣

先到的先服務!

 

比較:

Queue:  先進先出

Stack : 先進後出

Queue

 

Queue 的實作比較複雜

這邊直接用STL的用法

介紹Queue的函式種類

  • push: 把一個值加到尾巴
  • pop: 把第一個值移除掉
  • back: 得到尾巴的值
  • front: 得到頭的值

Queue

 

push : 有一個人排隊

pop : 最前面的人離開隊伍

back : 知道尾巴是誰

front : 知道最前面是誰

  • push: 把一個值加到尾巴
  • pop: 把第一個值移除掉
  • back: 得到尾巴的值
  • front: 得到頭的值

Queue

程式實作!

 

一開始有一個空的queue

接著會不停讀取指令:

 

指令為1 : 再讀取一個數字,代表有一個人(那個數字)來排隊

指令為2 : 最前面的人服務完畢

指令為3 : 印出誰在最前面

STL 容器

set / map

Dynamic Programming

http://www.csie.ntnu.edu.tw/~u91029/DynamicProgramming.html

FeedBack!

一起努力快樂寫程式吧!

Made with Slides.com