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
-
T – 包含的元素的类型。
T可以由包括用户定义类型的任何其他数据类型代替。
-
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 ++ List Tutorial With Example | C ++标准模板库(STL)中的列表已结束。
载入中…