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/

原文地址:https://www.cnblogs.com/tongyishu/p/13476081.html