STL--list

作者: 7bfedbe4863a | 来源:发表于2018-03-29 00:03 被阅读0次

    前言

    什么是STL?

    STL(Standard Template Library)标准模板库,它从根本上来说是一些“容器”的集合(包括list、vector、set、map、stack等)。

    • 头文件:
      algorithm、deque、functional、iterator、array、vector、list、map、memory、numeric、queue、set、unordered_set、stack、utility

    STL之list

    list的本质其实就是一个双向链表,可以很高效的进行插入和删除元素,但是呢,它也有链表本身的限制,即不能进行随机读取。

    • 构造:
      list list0; //空链表
      list list1(7); //建一个含有7个默认值是0的元素的链表
      list list2(5, 7); //建一个含有5个值为7的元素的链表
      list list3(c2); //拷贝构造
      list list4(c1.begin(), c1.end()); //新建的这个链表是拷贝了c1相应区间
    • 方法:
      assign(); //分配值
      back(); //返回最后一个元素的引用
      begin(); //返回第一个元素的指针
      clear(); //删除所有的元素
      empty(); //判断是否链表为空
      erase(); //删除一个元素或者一个区域的元素
      front(); //返回第一个元素的引用
      insert(); //在制定位置插入一个或多个元素
      max_size(); //返回链表最大可能长度
      merge(); //合并两个链表并使之默认升序(顺序可改)
      pop_back(); //删除链表尾的一个元素
      pop_front(); //删除链表头的一个元素
      push_back(); //在链表尾添加一个元素
      push_front(); //在链表头添加一个元素
      rbegin(); //返回链表最后一元素的后向指针
      rend(); //返回链表第一个元素的下一位置的后向指针
      remove(); //删除链表中匹配的元素(只要是匹配成功的都要删除)
      remove_if(); //删除条件满足的元素(先遍历一遍链表,然后再选择满足条件的删除)
      resize(); //重新定义链表的长度
      reverse(); //反转链表
      size(); //返回链表中元素个数
      sort(); //对链表排序,默认升序(顺序可改)
      splice(); //对两个链表进行结合
      swap(); //交换两个链表
      unique(); //删除相邻重复元素(一般是要已经排序好了的)

    相关文章

      网友评论

          本文标题:STL--list

          本文链接:https://www.haomeiwen.com/subject/iiepcftx.html