企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] ## 概述 1. 链表插入元素操作的时间复杂度总是 O(1) 2. 在频繁随机插入和随机删除元素的情景,链表就比较适合使用 3.链表除了头部、尾部的元素,其他中间元素都要依赖迭代器插入、删除和访问 常用函数 ``` QLinkedList() //默认构造函数 QLinkedList(const QLinkedList<T> & other) //复制构造函数 QLinkedList(std::initializer_list<T> list) //初始化列表构造函数,C++11特性 QLinkedList(QLinkedList<T> && other) //移动构造函数,C++11特性 ~QLinkedList() //析构函数 QLinkedList<int> listA = {1, 2, 3}; //初始化列表构造 QLinkedList<int> 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<QString> list; list.append("January"); list.append("February"); ... list.append("December"); QLinkedList<QString>::iterator i; for (i = list.begin(); i != list.end(); ++i) cout << *i << endl; ```