1. 程式人生 > 實用技巧 >c++ deque與forward_list

c++ deque與forward_list

deque概述

deque(雙端佇列)是由一段一段的定量連續空間構成,可以向兩端發展,因此不論在尾部或頭部安插元素都十分迅速。 在中間部分安插元素則比較費時,因為必須移動其它元素。

  #include <deque> // 需要包含標頭檔案 deque
  using namespace std; // 使用名稱空間 std
deque介面定義
  deque<T> dt; // 定義一個雙端佇列
  dt.size(); // 雙端佇列的大小
  dt.max_size(); // 雙端佇列的最大容量
  dt.resize(); // 重新定義雙端佇列的大小
  dt.empty(); //
判斷雙端佇列是否為空 dt.push_front(const T& t); // 在頭部插入元素 dt.push_back(const T& t); // 在尾部插入元素 dt.insert(iterator it, const T& t); // 任意位置插入元素 dt.pop_front(); // 刪除頭部元素 dt.pop_back(); // 刪除尾部元素 dt.erase(iterator it); // 在任意位置刪除元素 dt.clear(); // 清空所有元素 dt[0]; // 下標訪問,不會檢查是否越界 dt.at(0); // at 方法訪問 dt.front(); //
訪問頭部元素 dt.back(); // 訪問尾部元素

使用參見:http://www.cplusplus.com/reference/deque/deque/

forward_list概述

forward_list是一個單向連結串列,只支援單向順序訪問(list為雙向連結串列,支援反向訪問),在連結串列的任何位置進行插入/刪除操作都非常快。

  #include <forward_list> // 包含標頭檔案 forward_list
  using namespace std; // 使用名稱空間 std
forward_list介面定義
  forward_list<T> ft;
  ft.max_size(); 
// 連結串列的最大長度 ft.resize(); // 重新連結串列分配大小 ft.reserve(); // 反轉連結串列中的元素 ft.empty(); // 判斷連結串列是否為空 ft.front(); // 連結串列的首部元素 ft.push_front(const T& t); // 在連結串列首部新增元素 ft.pop_front(); // 移除連結串列首部元素 ft.sort(Compare comp); // 對連結串列按照comp函式(物件)的比較法則進行排序 ft.remove(const T& t); // 移除指定元素 ft.remove_if(Predicate pred); // 移除滿足pred函式(物件)的元素 ft.clear(); // 清空連結串列元素

使用參見:http://www.cplusplus.com/reference/forward_list/forward_list/