list

list的定义与结构

  • 双向链表容器
  • 节点(node)储存元素
  • 指针链接
    list<int> mylist
  • 特点
  1. 双向性,含有两个指针
  2. 能随意插入删除,直接改变指针指向就好
  3. 不能任意访问元素,必须便利
  4. 动态大小
  5. 可以不连续

list的常用函数

  • push_back():将元素插入到链表的末尾
  • push_front():将元素插入到链表的开头
  • pop_back():移除链表末尾的元素
  • pop_back():移除链表开头的元素
  • size():返回链表中元素的个数
  • empty():检查链表是否为空
  • clear():清空链表中的所有元素
  • front():返回链表中第一个元素的引用
  • back():返回链表中最后一个元素的引用
  • begin():返回链表中第一个元素的迭代器
  • end():返回链表末尾的下一个位置的迭代器
  • insert():在指定位置之前插入一个或者多个元素
  • erase():从链表中移除指定位置的一个或者多个元素

代码示例

#include<bits/stdc++.h>
using namespace std;
int main()
{
    //建立一个list
    list<int> mylist;
    //在list的结尾加上值
    for(int i = 1;i <= 5; ++i)
    {
        mylist.push_back(i);
    }
    for(const auto &i : mylist)cout<< i << ' ';
    cout << '\n';
    //反转list
    reverse(mylist.begin(),mylist.end());
    for(const auto &i : mylist)cout << i <<' ';
    cout << '\n';
    //++ mylist.begin()即从下标0开始向后加1
    mylist.insert(++ mylist.begin(),0);
    for(const auto &i : mylist)cout << i <<' ';
    cout << '\n';
    //两个++ ++ 就代表着向后加2,--就代表着下标减1
    mylist.erase(++ ++ mylist.begin(), -- mylist.end());
    cout << "链表大小为:" << mylist.size() << '\n';//.size()即测量链表的长度
    for(const auto &i : mylist)cout << i <<' ';
    cout << '\n';
    return 0;

}
posted @   777CC  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示