1. 程式人生 > >list、stack 與 queue 的使用

list、stack 與 queue 的使用

【概述】

list、stack 和 queue 是在程式設計中經常會用到的資料容器,STL 提供了方便的連結串列、堆疊、佇列的實現,準確地說,STL 中的 list、stack 與 queue 不同於 pair、vector 等容器,而是對列表、棧、佇列這三個資料結構的重新包裝。

【list 的使用】

list 定義在 <list> 標頭檔案中,其提供了雙鏈表的全部功能,即是一個線性連結串列結構,無需分配記憶體且可任意伸縮。

定義:list<type> listName

  • l.front():訪問列表首元素
  • l.back():訪問列表尾元素
  • l.empty():判斷列表是否為空,當列表為空時返回 true,否則返回 false
  • l.size():訪問列表中元素的個數
  • l.begin():返回指向第一個元素的迭代器
  • l.end():返回指向最後一個元素之後的迭代器
  • l.erase(it):刪除迭代器 it 所指元素並返回下一元素迭代器
  • l.erase(it_begin,it_end):刪除迭代器 [it_begin,it_end] 區間的元素並返回最後一個被刪除的元素的下一元素迭代器
  • l.insert(it,value):在迭代器 it 位置插入一個值為 value 的元素並返回其迭代器,原 it 及以後的元素後移
  • l.insert(it,num,value):在迭代器 it 位置插入 num 個值為 value 的元素並返回其迭代器,原 it 及以後的元素後移

【stack 的使用】

stack 定義在 <stack> 標頭檔案中,其提供了堆疊的全部功能,即實現了先進後出的資料結構。

定義: stack<type> stackName

stack 的基本操作有:

  • s.push(x):將元素 x 入棧
  • s.pop():將棧頂元素刪除
  • s.top():訪問棧頂元素
  • s.empty():判斷棧是否為空,當棧為空時返回 true,否則返回 false
  • s.size():訪問棧中元素的個數

【queue 的使用】

queue 定義在 <queue> 標頭檔案中,其提供了佇列的全部功能,即實現了先進先出的資料結構。

定義:queue<type> queueName

queue 的基本操作有:

  • q.push(x):入隊,將 x 存入佇列末端
  • q.pop():出隊,將佇列的第一個元素彈出
  • q.front():訪問隊首元素
  • q.back():訪問隊尾元素
  • q.empty():判斷佇列是否為空,當佇列為空時返回 true,否則返回 false
  • q.size():訪問佇列中元素的個數