QLinkedList
最后更新于:2022-04-02 02:13:43
[TOC]
## 概述
1. 链表插入元素操作的时间复杂度总是 O(1)
2. 在频繁随机插入和随机删除元素的情景,链表就比较适合使用
3.链表除了头部、尾部的元素,其他中间元素都要依赖迭代器插入、删除和访问
常用函数
```
QLinkedList() //默认构造函数
QLinkedList(const QLinkedList & other) //复制构造函数
QLinkedList(std::initializer_list list) //初始化列表构造函数,C++11特性
QLinkedList(QLinkedList && other) //移动构造函数,C++11特性
~QLinkedList() //析构函数
QLinkedList listA = {1, 2, 3}; //初始化列表构造
QLinkedList listB = std::move (listA ); //移动构造函数,listA 会被搬空,元素都存到 listB
// 添加
void append(const T & value) //添加元素到链表末尾
void push_back(const T & value) //添加元素到链表末尾,STL风格
void prepend(const T & value) //添加元素到链表头部
void push_front(const T & value) //添加元素到链表头部,STL风格
// 移除和删除函数
T takeFirst() //卸下头部元素并返回该元素
T takeLast() //卸下尾部元素并返回该元素
void removeFirst() //删除头部元素
void pop_front() //删除头部元素,STL风格
void removeLast() //删除尾部元素
void pop_back() //删除尾部元素,STL风格
bool removeOne(const T & value) //如果找到匹配的元素就删除第一个匹配的元素,删除后返回true,如果没找到相等的元素返回 false
int removeAll(const T & value) //删除所有匹配的元素,并返回删除数量
void clear()
//访问和查询函数
int size() const //获取元素总数量
int count() const //获取元素总数量
```
## 实例
```
QLinkedList list;
list.append("January");
list.append("February");
...
list.append("December");
QLinkedList::iterator i;
for (i = list.begin(); i != list.end(); ++i)
cout << *i << endl;
```
';