C++标准模板库(STL)列表

名单是 序列容器 允许非连续内存分配的。与vector相比,列表的遍历速度较慢,但一旦找到位置,插入和删除就会很快。通常,当我们说一个列表时,我们谈论的是一个双链接列表。为了实现单链表,我们使用转发列表。下面是显示List某些功能工作的程序:

null

CPP

// CPP program to show the implementation of List
#include <iostream>
#include <iterator>
#include <list>
using namespace std;
// function for printing the elements in a list
void showlist(list< int > g)
{
list< int >::iterator it;
for (it = g.begin(); it != g.end(); ++it)
cout << ' ' << *it;
cout << '' ;
}
// Driver Code
int main()
{
list< int > gqlist1, gqlist2;
for ( int i = 0; i < 10; ++i) {
gqlist1.push_back(i * 2);
gqlist2.push_front(i * 3);
}
cout << "List 1 (gqlist1) is : " ;
showlist(gqlist1);
cout << "List 2 (gqlist2) is : " ;
showlist(gqlist2);
cout << "gqlist1.front() : " << gqlist1.front();
cout << "gqlist1.back() : " << gqlist1.back();
cout << "gqlist1.pop_front() : " ;
gqlist1.pop_front();
showlist(gqlist1);
cout << "gqlist2.pop_back() : " ;
gqlist2.pop_back();
showlist(gqlist2);
cout << "gqlist1.reverse() : " ;
gqlist1.reverse();
showlist(gqlist1);
cout << "gqlist2.sort(): " ;
gqlist2.sort();
showlist(gqlist2);
return 0;
}


输出

List 1 (gqlist1) is :     0    2    4    6    8    10    12    14    16    18List 2 (gqlist2) is :     27    24    21    18    15    12    9    6    3    0gqlist1.front() : 0gqlist1.back() : 18gqlist1.pop_front() :     2    4    6    8    10    12    14    16    18gqlist2.pop_back() :     27    24    21    18    15    12    9    6    3gqlist1.reverse() :     18    16    14    12    10    8    6    4    2gqlist2.sort():     3    6    9    12    15    18    21    24    27

与列表一起使用的函数

功能

释义

前() 返回列表中第一个元素的值。
back() 返回列表中最后一个元素的值。
向前推(g) 在列表开头添加新元素“g”。
推回(g) 在列表末尾添加新元素“g”。
pop_front() 删除列表的第一个元素,并将列表的大小减少1。
回来 删除列表的最后一个元素,并将列表的大小减少1。
列表::begin() 函数的作用是:返回一个指向列表第一个元素的迭代器。
列表::end() 函数的作用是:返回一个迭代器,指向最后一个元素后面的理论上的最后一个元素。
列出rbegin()和rend() rbegin()返回一个反向迭代器,该迭代器指向列表的最后一个元素。rend()返回一个反向迭代器,该迭代器指向列表开头之前的位置。
列出cbegin()和cend() cbegin()返回一个指向列表开头的常量随机访问迭代器。cend()返回一个指向列表末尾的常量随机访问迭代器。
列出crbegin()和crend() crbegin()返回一个常量反向迭代器,该迭代器指向列表的最后一个元素,即容器的反向开头。crend()返回一个常量反向迭代器,该迭代器指向列表中第一个元素之前的理论元素,即列表的反向末端。
空的() 返回列表是否为空(1)或是否为空(0)。
插入() 在列表中指定位置的元素之前插入新元素。
抹去 从列表中删除单个元素或一系列元素。
分配() 通过替换当前元素并调整列表大小,将新元素指定给列表。
删除() 从列表中删除与给定元素相等的所有元素。
列表::删除_if() 用于从列表中删除与作为函数参数给定的谓词或条件相对应的所有值。
反向 反转列表。
大小() 返回列表中的元素数。
列表调整大小() 用于调整列表容器的大小。
排序() 按递增顺序对列表排序。
列出最大尺寸() 返回列表容器可以容纳的最大元素数。
列表唯一() 从列表中删除所有重复的连续元素。
list::emplace_front()和list::emplace_back() emplace_front()函数用于将新元素插入列表容器,新元素将添加到列表的开头。emplace_back()函数用于将新元素插入列表容器,新元素将添加到列表的末尾。
列表::clear() 函数用于删除列表容器的所有元素,从而使其大小为0。
列表::运算符= 此运算符用于通过替换现有内容将新内容分配给容器。
列表::swap() 此函数用于将一个列表的内容与相同类型和大小的另一个列表交换。
列表拼接() 用于将元素从一个列表转移到另一个列表。
列表合并() 将两个已排序的列表合并为一个。
列表位置() 通过在给定位置插入新元素来扩展列表。

关于C++列表的近期文章

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享