数据结构:双链表list

server/2025/2/26 1:06:13/

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。


http://www.ppmy.cn/server/170649.html

相关文章

Adpative Cursor Sharing引发的Oracle故障案例

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验 Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯…

【Python】打造自己的HTTP server

词汇汇总 CRLF 指的是换行和回车\r\n 教程 ./your_program.sh #启动自己的服务curl -v http://localhost:4221#开启另一个终端 测试HTTP response An HTTP response is made up of three parts, each separated by a CRLF (\r\n): Status line. Zero or more headers, each …

大语言模型(LLM)微调技术笔记

图1&#xff1a;大模型进化树2 大模型微调 在预训练后&#xff0c;大模型可以获得解决各种任务的通用能力。然而&#xff0c;越来越多的研究表明&#xff0c;大语言模型的能力可以根据特定目标进一步调整。 这就是微调技术&#xff0c;目前主要有两种微调大模型的方法1&…

DeepSeek 全面分析报告

引言 DeepSeek 是一款由中国人工智能初创公司 DeepSeek 开发的大型语言模型 (LLM)&#xff0c;于 2025 年 1 月发布&#xff0c;迅速成为全球人工智能领域的一匹黑马。DeepSeek 不仅在性能上可与 OpenAI、Google 等巨头的模型相媲美&#xff0c;而且其训练成本和运行效率都显著…

C++ 设计模式-模板方法模式

文件处理 #include <iostream>// 抽象基类&#xff1a;定义模板方法和抽象步骤 class DataProcessor { public:// 模板方法&#xff08;固定流程&#xff09;void Process() {OpenFile();ProcessData(); // 由子类实现CloseFile();}protected:virtual void ProcessData…

UE5网络通信架构解析

文章目录 前言一、客户端-服务器架构&#xff08;C/S Model&#xff09;二、对等网络架构&#xff08;P2P&#xff0c;非原生支持&#xff09;三、混合架构&#xff08;自定义扩展&#xff09;四、UE5网络核心机制 前言 UE5的网络通信主要基于客户端-服务器&#xff08;C/S&am…

KubeSphere平台安装

KubeSphere简介 KubeSphere 是一款功能强大的容器管理平台&#xff0c;以下是其简介&#xff1a; 1&#xff09;基本信息 开源项目&#xff1a;基于 Apache-2.0 授权协议开源&#xff0c;由 Google Go、Groovy、HTML/CSS 和 Shell 等多种编程语言开发。基础架构&#xff1a;…

如何查找 UBuntu的 arm版本

Ubuntu官网 https://ubuntu.com/ 如图&#xff1a; 点击 Tab栏的Download Ubuntu >> Server >> ARM >> 点击Download 24.04.2 LTS 即可 如果需要其他版本 点击 Alternative and previous releases 进入到如下页面选择想要的版本下载即可