C ++列表教程与示例| C ++标准模板库(STL)中的列表


C ++列表教程与示例| C ++标准模板库(STL)中的列表是今天的主题。列表是允许非连续内存分配的序列容器。该列表是可在C ++中使用STL(标准模板库)的序列容器。它使用非连续的内存分配,因此与C ++中的vector相比,遍历速度较慢。默认情况下,列表是双向链表。由于它是双向链表,因此列表中的插入和删除速度很快。

内容概述

  • 1 C ++ List Tutorial With Example
    • 1.1 #Parameters
  • 2#C ++列表中的成员类型
  • 3 #List构造函数
    • 3.1 #Destructor
  • 4#函数与C ++中的List一起使用
    • 4.1 push_back()
    • 4.2 push_front()
    • 4.3 pop_back()
    • 4.4 pop_front()
    • 4.5前()
    • 4.6回()
    • 4.7空()
    • 4.8插入()
    • 4.9擦除()
    • 4.10 assign()
    • 4.11删除()
    • 4.12反向()
    • 4.13尺寸()
    • 4.14开始()
    • 4.15结束()
    • 4.16 sort()
    • 4.17清除()

C ++列表教程与示例

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

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

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

从头文件中定义列表如下。

template  >班级名单;

#Parameters

  1. T – 包含的元素的类型。

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

  2. Alloc – 分配器对象的类型。

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

就像我们想要创建一个整数列表一样,我们可以通过以下代码来创建它。

名单 integer_list;

#C ++列表中的成员类型

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

Sr.No. 会员类型 定义
1 值类型 T(模板的第一个参数)
2 allocator_type Alloc(模板的第二个参数)
3 参考 值类型&
4 为const_reference const value_type&
指针 值类型*
6 const_pointer const value_type *
7 迭代器 随机访问value_type的迭代器
8 常量性 const value_type的随机访问迭代器
9 reverse_iterator的 的std :: reverse_iterator的
10 的const_reverse_iterator 的std :: reverse_iterator的
11 尺码类型 为size_t
12 difference_type ptrdiff_t的

#List构造函数

请参阅C ++列表中的以下构造函数。

(1)空容器构造函数(默认构造函数)它构造一个没有元素的空容器。 (2)fill构造函数它构造一个包含n个元素的容器。每个元素都是val的副本。 (3)范围构造函数它构造一个容器,其元素与范围(first,last)一样多,每个元素由该范围内的相应元素构成,顺序相同。 (4)复制构造函数它以相同的顺序构造一个容器,其中包含x中每个元素的副本。

#Destructor

C ++析构函数std :: list :: ~list()通过释放它的内存来破坏列表对象。

您可以使用以下代码定义c ++析构函数。

〜列表();

#Functions与C ++中的List一起使用

推回()

用于在列表末尾添加新元素。假设列表是L,我们想在其末尾插入一个元素。它可以这样做。

L.push_back(元件);

push_front()

用于在列表的开头添加新元素。假设列表是L,我们想在其前面插入一个元素。它可以这样做。

L.push_front(元件);

pop_back()

用于从列表末尾删除元素。将列表的大小减少一个。假设列表是L.它可以这样做。

L.pop_back();

pop_front()

用于从列表的开头删除元素。将列表的大小减少一个。假设列表是L.

L.pop_front();

面前()

它返回列表中的第一个元素。因此,如果我们想检查列表的第一个元素的值,可以使用它。

L.front();

背部()

它返回列表中的最后一个元素。因此,如果我们想要检查列表的最后一个元素的值,可以使用它。

L.back();

空()

如果列表为空,则返回1,否则返回0。

L.empty();

插入()

用于在列表的任何位置插入元素。它需要三个参数位置,要插入的几个元素和要插入的值。默认情况下,元素数设置为1。

L.insert(iterator,num_of_elements,element);

删除()

用于从列表中删除一个元素或一系列元素。要删除一个元素,只传递一个整数位置并将其删除。要删除一个范围,需要传递启动迭代器和结束迭代器。

L.erase(list_iterator); //删除一个元素L.erase(start_iterator,last_iterator); //对于范围

分配()

它用于通过替换当前元素并将列表调整大小来将新元素分配给列表。两个参数要分配的值的数量,第二个是要分配的值。

L.assign(次数,值);

去掉()

它将值作为参数,并从列表中删除具有此值的所有元素。

L.remove(值);

相反()

顾名思义,它会颠倒列表中元素的顺序。

L.reverse();

尺寸()

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

L.size();

开始()

它将迭代器返回到列表中的第一个元素。

名单 :: iterator = L.begin();

结束()

它返回指向理论最后一个元素的迭代器,该元素位于最后一个元素之后。

借();

分类()

它用于按递增顺序对列表的元素进行排序。

L.sort();

明确()

它用于删除列表容器的所有元素。所以列表的大小变为0。

L.clear();

我们来看下面的示例代码。

// list.cpp #include  #包括  using namespace std; void showTheContent(列表 l){list:: iterator它; for(it = l.begin(); it= l.end(); it ++){cout << * it <<“”; } cout <<“ n”; } int main(){//显示List及其函数列表的示例代码 列表1,列表2; int i; //在后面插入(i = 0; i <10; i ++)list1.push_back(i + 1); //在前面插入(i = 0; i <10; i ++)list2.push_front(i + 1); cout <<“清单1的内容:”; showTheContent(列表1); cout <<“清单2的内容:”; showTheContent(列表2); //排序第二个列表list2.sort(); cout <<“Sorted List2:”; showTheContent(列表2); //从list1中删除前面的五个元素。 int times = 5; while(times--){list1.pop_front(); } cout <<“列表1的内容:”; showTheContent(列表1); //从list2中的后面删除五个元素。倍= 5; while(times--){list2.pop_back(); } cout <<“清单2的内容:”; showTheContent(列表2); //寻找列表1的第一个元素cout << list1.front()<<“现在位于列表1的前面 n”; //寻找列表2中的最后一个元素cout << list2.back()<<“现在是列表2中的最后一个元素 n”; //在列表1中插入元素.list1.insert(list1.begin(),5,10); cout <<“插入后列表1:”; showTheContent(列表1); // remove()删除所有值为10的元素.list1.remove(10); cout <<“删除后清单1:”; showTheContent(列表1); // size()知道元素的数量cout <<“列表1中元素的数量:”; cout << list1.size()<<“ n”; //反转列表2 list2.reverse()的内容; cout <<“反向清单2:”; showTheContent(列表2); //删除列表2的第一个元素list2.erase(list2.begin()); cout <<“从清单2中删除后:”; showTheContent(列表2); //从列表中删除所有元素1. list1.clear(); //使用empty()函数if(list1.empty())cout <<“List 1现在为空 n”;否则cout <<“非空 n”; //使用assign函数list1.assign(5,2); // 2 2 2 2 2 cout <<“List 1:”; showTheContent(列表1);返回0; }

请参阅以下输出。

C ++列表教程与示例

最后,C ++ List Tutorial With Example | C ++标准模板库(STL)中的列表已结束。

载入中…

资讯来源:由0x资讯编译自APPDIVIDEND,版权归作者Ankit Lathiya所有,未经许可,不得转载
你可能还喜欢