欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > 数据结构:双链表list

数据结构:双链表list

2025/2/22 20:28:47 来源:https://blog.csdn.net/qq_53201790/article/details/145770692  浏览:    关键词:数据结构:双链表list

list 是 C++ 标准库中的双向链表容器。

list初始化示例:

#include <list>int n = 7;std::list<int> lst; // 初始化一个空的双向链表 lststd::list<int> lst(n); // 初始化一个大小为 n 的链表 lst,链表中的值默认都为 0std::list<int> lst{1, 3, 5}; // 初始化一个包含元素 1, 3, 5 的链表 lststd::list<int> lst(n, 2); // 初始化一个大小为 n 的链表 lst,其中值都为 2

list常用操作示例:

#include <iostream>
#include <list>
using namespace std;int main() {list<int> lst{1, 2, 3, 4, 5};    // 初始化链表cout << lst.empty() << endl;    // 检查链表是否为空,输出:falsecout << lst.size() << endl;    // 获取链表的大小,输出:5lst.push_front(0);    // 在链表头部插入元素 0lst.push_back(6);    // 在链表尾部插入元素 6cout << lst.front() << " " << lst.back() << endl;    // 获取链表头部和尾部元素,输出:0 6lst.pop_front();    // 删除链表头部元素lst.pop_back();    // 删除链表尾部元素auto it = lst.begin();    // 在链表中插入元素advance(it, 2);    // 移动到第三个位置lst.insert(it, 99);    // 在第三个位置插入 99it = lst.begin();    // 删除链表中某个元素advance(it, 1);    // 移动到第二个位置lst.erase(it);    // 删除第二个位置的元素// 遍历链表// 输出:1 99 3 4 5for (int val : lst) {cout << val << " ";}cout << endl;return 0;
}

 一般情况下,我们在头部增删元素会使用双链表,因为他在头部增删元素的效率比vector高。但我们通过索引访问元素时一般会使用vector。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词