📜  在C++标准模板库(STL)中列出

📅  最后修改于: 2021-05-30 19:08:36             🧑  作者: Mango

列表是允许非连续内存分配的序列容器。与向量相比,列表遍历速度较慢,但是一旦找到位置,插入和删除操作就会很快。通常,当我们说一个列表时,我们谈论的是双向链表。为了实现单链列表,我们使用转发列表。

下面是显示List的某些功能的程序:

#include 
#include 
#include 
using namespace std;
  
//function for printing the elements in a list
void showlist(list  g)
{
    list  :: iterator it;
    for(it = g.begin(); it != g.end(); ++it)
        cout << '\t' << *it;
    cout << '\n';
}
  
int main()
{
  
    list  gqlist1, gqlist2;
  
  
    for (int i = 0; i < 10; ++i)
    {
        gqlist1.push_back(i * 2);
        gqlist2.push_front(i * 3);
    }
    cout << "\nList 1 (gqlist1) is : ";
    showlist(gqlist1);
  
    cout << "\nList 2 (gqlist2) is : ";
    showlist(gqlist2);
  
    cout << "\ngqlist1.front() : " << gqlist1.front();
    cout << "\ngqlist1.back() : " << gqlist1.back();
  
    cout << "\ngqlist1.pop_front() : ";
    gqlist1.pop_front();
    showlist(gqlist1);
  
    cout << "\ngqlist2.pop_back() : ";
    gqlist2.pop_back();
    showlist(gqlist2);
  
    cout << "\ngqlist1.reverse() : ";
    gqlist1.reverse();
    showlist(gqlist1);
  
    cout << "\ngqlist2.sort(): ";
    gqlist2.sort();
    showlist(gqlist2);
  
    return 0;
  
}

上面程序的输出是:

List 1 (gqlist1) is :     0    2    4    6    
8    10    12    14    16    18

List 2 (gqlist2) is :     27    24    21    18    
15    12    9    6    3    0

gqlist1.front() : 0
gqlist1.back() : 18
gqlist1.pop_front() :     2    4    6    8    
10    12    14    16    18

gqlist2.pop_back() :     27    24    21    18    
15    12    9    6    3

gqlist1.reverse() :     18    16    14    12    
10    8    6    4    2

gqlist2.sort():     3    6    9    12    
15    18    21    24    27

与List一起使用的功能:

  • front()–返回列表中第一个元素的值。
  • back()–返回列表中最后一个元素的值。
  • push_front(g)–在列表的开头添加新元素“ g”。
  • push_back(g)–在列表末尾添加新元素“ g”。
  • pop_front()–删除列表的第一个元素,并将列表的大小减小1。
  • pop_back()–删除列表的最后一个元素,并将列表的大小减小1
  • C++ STL中的list :: begin()和list :: end()– begin()函数返回指向列表第一个元素的迭代器
  • end()– end()函数返回一个迭代器,该迭代器指向理论上的最后一个元素,该元素位于最后一个元素之后。
  • C++ STL中的list rbegin()和rend()函数– rbegin()返回一个反向迭代器,该迭代器指向列表的最后一个元素。 rend()返回一个反向迭代器,该迭代器指向列表开头之前的位置。
  • C++ STL中的list cbegin()和cend()函数– cbegin()返回一个常数随机访问迭代器,该迭代器指向列表的开头。 cend()返回一个常数随机访问迭代器,该迭代器指向列表的末尾。
  • C++ STL中的list crbegin()和crend()函数– crbegin()返回一个常量反向迭代器,该迭代器指向列表的最后一个元素,即容器的反向开始。 crend()返回一个常量反向迭代器,该迭代器指向列表中第一个元素之前的理论元素,即列表的反向结尾。
  • empty()–返回列表是否为empty(1)或不为(0)。
  • insert()–在列表中的指定位置之前,在列表中插入新元素。
  • delete()–从列表中删除单个元素或一系列元素。
  • Assign()–通过替换当前元素并调整列表大小来为列表分配新元素。
  • remove()–从列表中删除所有与给定元素相等的元素。
  • C++ STL中的list :: remove_if()–用于从列表中删除与谓词或条件相对应的所有值,这些谓词或条件作为函数的参数给出。
  • reverse()–反转列表。
  • size()–返回列表中的元素数。
  • C++ STL中的list resize()函数–用于调整列表容器的大小。
  • sort()–以递增顺序对列表进行排序。
  • C++ STL中的list max_size()函数–返回列表容器可以容纳的最大元素数。
  • C++ STL中的list unique()列表–从列表中删除所有重复的连续元素。
  • C++ STL中的list :: emplace_front()和list :: emplace_back()– emplace_front()函数用于将新元素插入列表容器,并将新元素添加到列表的开头。 emplace_back()函数用于将新元素插入列表容器,新元素添加到列表的末尾。
  • C++ STL中的list :: clear()– clear()函数用于删除列表容器的所有元素,从而使其大小为0。
  • list :: 运算符= in C++ STL –此运算符用于通过替换现有内容将新内容分配给容器。
  • C++ STL中的list :: swap()–此函数用于将一个列表的内容与相同类型和大小的另一个列表交换。
  • C++ STL中的list splice()函数–用于将元素从一个列表传输到另一个列表。
  • C++ STL中的list merge()函数–将两个排序的列表合并为一个
  • list C++ STL中的emplace()函数–通过在给定位置插入新元素来扩展列表。

C++列表上的最新文章

要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”