• C++——STL之list学习笔记


    在刷leetcode时发现有时要使用list方法,因此上网搜索并学习它的使用方法

    1、介绍


      List是一个序列容器,实现的是双向链表,每个元素都有两个指针,分别指向元素的前驱和后继。它不需要指定内存大小,因为他在存储在不连续的内存空间中,并由指针将他们连接在一起。由于链表的特点,它的查找要在O(n)的时间才能完成,不能进行内部的随机访问,即不支持[ ] 操作符和vector.at() 操作,但它允许序列快速在任意位置进行插入和删除操作作。包括在两边的pop()和push()操作

    2、定义以及初始化


    #include <bits/stdc++.h>
    
    using namespace std;
    
    int main()
    {
        //建立一个空list
        list<int> l1;
        
        //建立一个含有5个元素的list
        list<int> l2(5);
        
        //建立一个含有5个值为4元素的list
        list<int> l3(5,4);
        
        //使用l2初始化l4
        list<int> l4(l2);
        
        return 0;
    }

    3、增删改查操作


     

    1、begin()和end():通过调用list容器的成员函数begin()得到一个指向容器起始位置的iterator,可以调用list容器的 end() 函数来得到list末端下一位置,相当于:int a[n]中的第n+1个位置a[n],实际上是不存在的,不能访问,经常作为循环结束判断结束条件使用。 

    2、front()和back(): 通过front()可以获得list容器中的头部元素,通过back()可以获得list容器的最后一个元素。但是有一点要注意,就是list中元素是空的时候,这时候调用front()和back()会发生什么呢?实际上会发生不能正常读取数据的情况,但是这并不报错,那我们编程序时就要注意了,个人觉得在使用之前最好先调用empty()函数判断list是否为空。

    3、push_back() 和push_front():使用list的成员函数push_back和push_front插入一个元素到list中。其中push_back()从list的末端插入,而 push_front()实现的从list的头部插入。

    4、pop_back和pop_front():通过删除最后一个元素,通过pop_front()删除第一个元素;序列必须不为空,如果当list为空的时候调用pop_back()和pop_front()会使程序崩掉。

    4、参考资料


    1、《c++(list容器学习)》https://www.cnblogs.com/loleina/p/5179677.html

    2、《C++中list的用法详解》https://blog.csdn.net/yas12345678/article/details/52601578/

  • 相关阅读:
    运算符
    javaScript注意事项
    初识JavaScript.
    tomee.xml
    setenv.bat
    catalina.properties
    tomee 系列问题
    tomee 第一个 远程调用 Message-driven bean(MDB)
    tomee 第一个 远程调用 Session Bean
    Java EE 参考文档及sample
  • 原文地址:https://www.cnblogs.com/simplekinght/p/9573046.html
Copyright © 2020-2023  润新知