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/