• STL模板整理 list


    介绍:

    list容器是一种序列式容器,它是STL实现的双向链表,与vector相比它可以实现快速的插入和删除,但是不能够快速的随机访问。

    头文件:

    #include <list>

    构造函数:

    list() 声明一个空列表;

    list(n) 声明一个有n个元素的列表,每个元素都是由其默认构造函数T()构造出来的

    list(n,val) 声明一个由n个元素的列表,每个元素都是由其复制构造函数T(val)得来的

    list(first,last) 声明一个列表,其元素的初始值来源于由区间所指定的序列中的元素

    定义:

    list<int>lst1;          //创建空list

    list<int> lst2(5);       //创建含有5个元素的list

    list<int>lst3(3,2);  //创建含有3个元素的list

    list<int>lst4(lst2);    //使用lst2初始化lst4

    list<int>lst5(lst2.begin(),lst2.end());  //同lst4

    常用函数:

    list中常用的函数:

    begin()和end():通过调用list容器的成员函数begin()得到一个指向容器起始位置的iterator,可以调用list容器的 end() 函数来得到list末端下一位置。

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

    empty():利用empty() 判断list是否为空。

    resize(): 如果调用resize(n)将list的长度改为只容纳n个元素,超出的元素将被删除,如果需要扩展那么调用默认构造函数T()将元素加到list末端。如果调用resize(n,val),则扩展元素要调用构造函数T(val)函数进行元素构造,其余部分相同。

    clear(): 清空list中的所有元素。

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

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

    reverse():通过reverse()完成list的逆置。

    swap():交换两个链表(两个重载),一个是l1.swap(l2); 另外一个是swap(l1,l2),都可能完成连个链表的交换。

    front()和back():返回第一个元素。返回最后一个元素。

    erase():删除一个元素或一个区域的元素(两个重载)L.erase(L.begin()); 将L的第一个元素删除。L.erase(L.begin(),L.end()); 将L的从begin()到end()之间的元素删除。

    sort():给list中的元素进行排序。

    splice():合并两个list L1.splice(L1.end(),L2)    //合并为L1并且将L2清空。

    宝剑锋从磨砺出 梅花香自苦寒来
  • 相关阅读:
    交叉熵的数学原理及应用——pytorch中的CrossEntropyLoss()函数
    pytorch中如何使用DataLoader对数据集进行批处理
    Pytorch中的自动求导函数backward()所需参数含义
    Pytorch中的torch.cat()函数
    Pytorch中的squeeze()和unsqueeze()函数
    UBUNTU18.04安装网易云音乐并直接图标启动
    UBUNTU18.4环境下使用更好用的搜索引擎(无奈,只能起这样的标题)
    Ubuntu 18.04换国内源 中科大源 阿里源 163源 清华源
    共享栈
    C++(十七) — 宏代码、内联函数
  • 原文地址:https://www.cnblogs.com/GHzcx/p/8749072.html
Copyright © 2020-2023  润新知