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/

猜你喜欢

转载自www.cnblogs.com/simplekinght/p/9573046.html