云计算百科
云计算领域专业知识百科平台

C++(24):容器类<list>

目录

一、核心概念

二、基本语法

1. 声明与初始化

2.添加元素

3.访问与遍历

4. 删除元素

三、特点

1. 高效插入/删除

2. 不支持随机访问

3. 特有成员函数

4. 内存与性能

四、示例代码

五、成员函数

六、使用场景

七、注意事项        


    

         Lists将元素按顺序储存在链表中.,与 向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢。

一、核心概念

  <list> 是C++标准库中的 双向链表 容器,其核心特性如下:

  • 双向链表结构 每个元素(节点)包含两个指针,分别指向前一个和后一个节点,支持双向遍历。

  • 非连续内存分配 元素存储在离散的内存块中,插入/删除时只需调整指针,无需移动其他元素。

  • 双向迭代器 支持 ++ 和 — 操作,但不支持随机访问(如 +n 或 [])。


  • 二、基本语法

    1. 声明与初始化
    • 包含头文件:#include <list>
    • std::list<T> mylist;,其中 T 是存储在列表中的元素类型。

    #include <list>
    using namespace std;

    // 声明一个整数链表
    list<int> list1; // 空链表
    list<int> list2 = {1, 2, 3}; // 初始化列表
    list<int> list3(5, 10); // 包含5个10的链表:{10,10,10,10,10}
    list<int> lst4 = {1, 2, 3, 4}; // 使用初始化列表

    2.添加元素

            mylist.push_front(value):push_front()函数将val连接到链表的头部。

            mylist.push_back(value):push_back()将val连接到链表的最后。

            mylist.begin():begin()函数返回一个迭代器,指向list的第一个元素。

            insert()插入元素val到位置pos,或者插入num个元素val到pos之前,或者插入start到end之间的元素到pos的位置。返回值是一个迭代器,指向被插入的元素。

            advance 函数的作用

    • 是 <iterator> 头文件中的通用函数(需包含 <iterator>,但在 <list> 中已隐式包含)。

    • 适用于所有支持 ++ 操作的迭代器(如 list 的双向迭代器)。

    • 参数说明:

      advance(迭代器, 移动步数);

      • 若步数为正数:向前移动。

      • 若步数为负数:向后移动(需迭代器支持 —

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » C++(24):容器类<list>
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!