目录

C++ Library - <list>

介绍 (Introduction)

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

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

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

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

定义 (Definition)

下面是头文件中std :: list的定义

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

参数 (Parameters)

  • T - 包含的元素的类型。

    T可以由包括用户定义类型的任何其他数据类型代替。

  • Alloc - 分配器对象的类型。

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

成员类型 (Member types)

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

Sr.No. 会员类型 定义
1value_type T(模板的第一个参数)
2allocator_type Alloc(模板的第二个参数)
3referencevalue_type&
4const_reference const value_type&
5pointervalue_type*
6const_pointer const value_type *
7iterator value_type的随机访问迭代器
8const_iterator const value_type的随机访问迭代器
9reverse_iteratorstd::reverse_iterator <iterator>
10const_reverse_iteratorstd::reverse_iterator <const_iterator>
11size_typesize_t
12difference_typeptrdiff_t

来自的函数

以下是标题中所有方法的列表。

构造函数 (Constructors)

Sr.No. 方法和描述
1 list::list 默认构造函数

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

2 list::list fill构造函数

构造一个包含n个元素的新列表,并为列表的每个元素分配val

3 list::list fill构造函数

构造一个包含n个元素的新列表,并为列表的每个元素分配零值。

4 list::list range构造函数

构造一个列表,其中包含从第一个最后一个范围内的元素。

5 list::list copy构造函数

构造一个列表,其中包含现有列表中存在的每个元素的副本。

6 list::list move构造函数

使用move语义构造一个包含其他内容的列表。

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

使用move语义构造一个包含其他内容的列表。

Destructor

Sr.No. 方法和描述
1 list::~list

通过释放它的内存来销毁列表对象。

成员函数 (Member functions)

Sr.No. 方法和描述
1 list::assign range version

通过替换旧值为列表分配新值。

2 list::assign fill version

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

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

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

4 list::back

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

5 list::begin

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

6 list::cbegin

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

7 list::cend

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

8 list::clear

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

9 list::crbegin

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

10 list::crend

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

11 list::emplace

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

12 list::emplace_back

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

13 list::emplace_front

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

14 list::empty

测试列表是否为空。

15 list::end

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

16 list::erase position version

从列表中删除单个元素。

17 list::erase 范围版本

从列表中删除元素范围。

18 list::front

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

19 list::get_allocator

返回与list关联的分配器

20 list::insert 单个元素版本

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

21 list::insert 填充版本

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

22 list::insert 范围版本

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

23 list::insert 移动版本

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

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

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

25 list::max_size

返回list可以保存的最大元素数。

26 list::merge

将两个排序列表合并为一个。

27 list::merge 比较函数

将两个排序列表合并为一个。

28 list::merge move version

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

29 list::merge 比较函数移动版本

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

30 list::operator= copy version

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

31 list::operator= 移动版本

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

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

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

33 list::pop_back

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

34 list::pop_front

从列表中删除第一个元素。

35 list::push_back

在列表末尾插入新元素。

36 list::push_back 移动版本

在列表末尾插入新元素。

37 list::push_front

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

38 list::push_front 移动版本

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

39 list::rbegin

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

40 list::remove

从列表中删除与该值匹配的元素。

41 list::remove_if

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

42 list::rend

返回一个反向迭代器,它指向列表的反向末尾。

43 list::resize

更改列表的大小。

44 list::resize value version

更改列表的大小。

45 list::reverse

反转列表中存在的元素的顺序。

46 list::size

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

47 list::sort

对列表的元素进行排序。

48 list::sort compare函数

对列表的元素进行排序。

49 list::splice

将列表中的所有元素传输到* this。

50 list::splice single element

将迭代器i指向的元素从列表x转移到* this中

51 list::splice move version

通过使用移动语义将列表x中的所有元素传输到* this

52 list::splice 范围版本

传输从x*第一个最后一个范围内的元素。

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

通过使用移动语义将迭代器i指向的元素从列表x转移到* this中

54 list::splice range和move version

通过使用移动语义,将从x*第一个最后一个范围内的元素转移到此

55 list::swap

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

56 list::unique

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

57 list::unique

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

非成员重载函数 (Non-member overloaded functions)

Sr.No. 方法和描述
1 operator==

测试两个列表是否相等。

2 operator!=

测试两个列表是否相等。

3 operator<

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

4 operator<=

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

5 operator>

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

6 operator>=

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

7 swap

交换两个列表的内容。

↑回到顶部↑
WIKI教程 @2018