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 @ 2024-03-03 16:31  777CC  阅读(14)  评论(0)    收藏  举报