C ++库 - <list>

简介

List是一种常用的序列容器. Container是一个保存相同类型数据的对象.列表容器实现为双向链表,因此它提供对其数据的双向顺序访问.

列表不提供快速随机访问,它仅支持双向顺序访问. List允许在一个序列中的任何位置以恒定时间进行插入和删除操作.

列表元素可以分散在不同的内存块中.容器存储必要的信息以允许顺序访问它的数据.列表可以在运行时根据需要从两端收缩或扩展.内部分配器自动满足存储要求.

零大小的列表也是有效的.在这种情况下,list.begin()和list.end()指向同一位置.但调用front()或back()的行为是未定义的.

定义

以下是来自< list>的std :: list的定义.头文件

template < class T, class Alloc = allocator<T> > class list;

参数

  • T : 包含的元素的类型.

    T可以被任何其他数据类型替换,包括用户定义的类型.

  • Alloc : 分配器对象的类型.

    默认情况下,使用allocator类模板,该模板定义了最简单的内存分配模型,并且与值无关.

成员类型

以下成员类型可用作参数或按成员函数返回类型.

Sr.No.会员类型定义
1value_typeT(模板的第一个参数)
2allocator_typeAlloc(模板的第二个参数)
3referencevalue_type&
4const_referenceconst value_type&
5指针value_type *
6const_pointerconst value_type *
7iteratorvalue_type的随机访问迭代器
8const_iterator随机访问迭代器到const value_type
9reverse_iteratorstd :: reverse_iterator< iterator>
10const_reverse_iteratorstd :: reverse_iterator< const_iterator>
11size_typesize_t
12difference_typeptrdiff_t

来自< list>的函数

以下是所有方法的列表来自< list>标题.

构造函数

Sr.No .方法&说明
1list::list  默认构造函数

构造一个零元素的空列表.

2list :: list   fill constructor

使用 n 元素构造一个新列表并指定 val 到列表的每个元素.

3list :: list   fill constructor

使用 n 元素构造一个新列表,并为列表的每个元素赋值为零.

4list :: list  范围构造函数

构造一个包含 first last

5list :: list   copy constructor

构造一个包含每个副本的列表现有清单中的元素.

6list :: list   move constructor

构造一个包含使用移动语义的 other 的内容.

7list :: list  初始化列表构造函数

使用移动语义构造一个包含 other 内容的列表.

析构函数

Sr.No.方法&说明
1list::~list

通过解除分配内存来销毁列表对象.

成员函数

Sr.No.方法&说明
1list::assign  范围版本

通过替换旧值将新值分配给列表.

2list :: assign   fill version

通过替换旧值将新值分配给列表.

3list :: assign  初始化列表版本

通过替换旧值将新值分配给列表.

4list : :back

返回对列表最后一个元素的引用.

5list :: begin

返回随机访问迭代器指向列表的第一个元素.

6list :: cbegin

返回一个指向的常量随机访问迭代器列表的开头.

7list :: cend

返回一个指向列表末尾的常量随机访问迭代器.

8list :: clear

通过从列表中删除所有元素并将列表大小设置为零来销毁列表./p>

9list :: crbegin

返回一个指向列表最后一个元素的常量反向迭代器.

10list :: crend

返回一个常量反向迭代器,它指向列表中第一个元素之前的理论元素.

11list::emplace

通过在给定位置插入新元素来扩展列表.

12list :: emplace_back

在列表末尾插入新元素,并将列表大小增加一个.

13list :: emplace_front

在列表的开头插入新元素并增加列表大小一个.

14list :: empty

测试列表是否为空.

15list :: end

返回一个随机访问迭代器,它指向列表的最后一个元素.

16list :: erase   position version

从列表中删除单个元素.

17list :: erase  范围版本

从列表中删除元素范围.

18list : :front

返回对列表第一个元素的引用.

19list :: get_allocator

返回与列表关联的分配器

20list :: insert  单个元素版本

通过插入扩展迭代器列表中位置的新元素.

21list :: insert   fill version

Extends通过在容器中插入新元素来列出.

22list :: insert   range version

通过插入新元素来扩展列表在容器中.

23list :: insert   move version

通过在容器中插入新元素来扩展列表.

24list :: insert  初始化列表版本

通过在容器中插入新元素来扩展列表

25list :: max_size

返回最大数量o f元素可以按列表持有.

26list :: merge

将两个已排序的列表合并为一个.

27list::merge  比较函数

将两个已排序的列表合并为一个.

28list :: merge  移动版本

使用移动语义将两个已排序的列表合并为一个.

29列表: :合并 比较函数移动版本

使用移动语义将两个已排序的列表合并为一个.

30list :: operator =   copy version

通过替换旧内容将新内容分配给列表.

31list :: operator =   move version

通过替换旧内容将新内容分配给列表.

32list :: operator =  初始化列表版本

通过替换旧内容将新内容分配给列表.

33list :: pop_back

从列表中删除最后一个元素.

34list :: pop_front

删除列表中的第一个元素.

35list :: push_back

在列表末尾插入新元素.

36list :: push_back   move version

在列表末尾插入新元素.

37list :: push_front

在列表的开头插入新元素.

38list :: push_front  的移动version

在列表的开头插入新元素.

39list :: rbegin

返回反向迭代器指向列表的最后一个元素.

40list :: remove

从列表中删除元素匹配该值.

41list :: remove_if

从列表中删除满足条件的元素.

42list :: rend

返回指向列表反面的反向迭代器.

43list :: resize

更改列表的大小.

44list :: resize   value版本

更改列表的大小.

45list :: reverse

颠倒元素的顺序列表中的内容.

46list :: size

返回列表中存在的元素数.

47list::sort

对ele进行排序列表中的内容.

48list :: sort   compare function

对列表元素进行排序.

49list::splice

将列表中的所有元素转移到* this.

50list :: splice  单个元素

将列表 x 中的迭代器 i 指向的元素传输到 * this .

51list :: splice   move version

从列表转移所有元素x * this 使用move语义.

52list :: splice   range version

转移

53list :: splice  单个元素移动版本

将列表 x 中迭代器 i 指向的元素传输到 * this 使用移动语义.

54list :: splice  范围和移动版本

转移通过使用移动语义, first 的范围内的元素 x * this .

55list :: swap

将列表内容与另一个列表 x 的内容进行交换.

56list :: unique

从列表中删除所有连续的重复元素.

57list :: unique

从列表中删除所有连续的重复元素.

非成员重载函数

Sr.No.方法&说明
1operator==

测试两个列表是否相等.

2operator!=

测试两个列表是否相等.

3operator<

测试第一个列表是否小于其他列表.

4operator< =

测试第一个列表是否小于或等于其他与否.

5operator>

测试第一个列表是否大于其他列表.

6operator>=

测试第一个列表是否大于或等于其他列表.

7swap

交换两个清单的内容.