• (C/C++学习)28.STL之list容器


    说明:list 容器是一个循环的双向链表。链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。链表每次插入或者删除一个元素,就配置或者释放一个元素的空间。因此,list 对于空间的运用有绝对的精准,一点也不浪费。而且,对于任何位置的元素插入或元素的移除,list 永远是常数时间。

    1.构造器

    1 list<T> lstT;//list默认构造形式
    2 list(beg,end);//构造函数将(beg, end)区间中的元素拷贝给本身。
    3 list(n,elem);//构造函数将 n 个 elem 拷贝给本身。
    4 list(const list &lst);//拷贝构造函数。

    2.数据插入和删除

     1 push_back(elem);//在容器尾部加入一个元素
     2 pop_back();//删除容器中最后一个元素
     3 push_front(elem);//在容器开头插入一个元素
     4 pop_front();//从容器开头移除第一个元素
     5 insert(pos,elem);//在 pos 位置插 elem 元素的拷贝,返回新数据的位置
     6 insert(pos,n,elem);//在 pos 位置插入 n 个 elem 数据,无返回值
     7 insert(pos,beg,end);//在 pos 位置插入[beg,end)区间的数据,无返回值
     8 clear();//移除容器的所有数据
     9 erase(beg,end);//删除(beg,end)区间的数据,返回下一个数据的位置
    10 erase(pos);//删除 pos 位置的数据,返回下一个数据的位置
    11 remove(elem);//删除容器中所有与 elem 值匹配的元素

    3.大小操作

    1 size();//返回容器中元素的个数
    2 empty();//判断容器是否为空
    3 resize(num);//重新指定容器的长度为 num,若容器变长,则以默认值填充新位置,如果容器变短,则末尾超出容器长度的元素被删除。
    4 resize(num, elem);//重新指定容器的长度为 num,若容器变长,则以 elem 值填充新位置,如果容器变短,则末尾超出容器长度的元素被删除

    4.赋值操作

    1 assign(beg, end);//将(beg, end)区间中的数据拷贝赋值给本身
    2 assign(n, elem);//将 n 个 elem 拷贝赋值给本身
    3 list& operator=(const list &lst);//重载等号操作符
    4 swap(lst);//将 lst 与本身的元素互换。

    5.数据存取

    1 front();//返回第一个元素
    2 back();//返回最后一个元素

    6.反转排序

    1 reverse();//反转链表
    2 sort(); //list 排序

    7.链表的拼接操作

    1 void splice ( iterator pos, list<T>& x );//将x链表拼接到原链表的pos位置
    2 void splice ( iterator pos, list<T>& x, iterator it );//将x链表it位置元素拼接到原链表的pos位置
    3 void splice ( iterator position, list<T>& x, iterator first, iterator last );//将x链表指定区间元素拼接到原链表的pos位置
  • 相关阅读:
    吴裕雄--天生自然JAVA图形界面编程学习笔记:单选按钮JRadioButton
    (001)springboot中测试的基础知识以及接口和Controller的测试
    (029)Spring Boot之监测与度量
    (028)Spring Boot之日志处理
    (027)Spring Boot之自定义starter
    (026)Spring Boot之aop
    (025)Spring Boot之JdbcTemplate与Transactional事务处理
    (024)Spring Boot之配置数据源
    (023)Spring Boot之修改内嵌tomcat的3种方式
    (022)Spring Boot之异常处理的两种方式
  • 原文地址:https://www.cnblogs.com/tuihou/p/12418909.html
Copyright © 2020-2023  润新知