C++标准模板库(STL)的List

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

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

#include <iostream> 
#include <list> 
#include <iterator> 
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 << '\t' << *it; 
    cout << '\n'; 
} 
  
int main() 
{ 
  
    list <int> 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

与列表一起使用的函数

  • front() – Returns the value of the first element in the list.
  • back() – Returns the value of the last element in the list .
  • push_front(g) – Adds a new element ‘g’ at the beginning of the list .
  • push_back(g) – Adds a new element ‘g’ at the end of the list.
  • pop_front() – Removes the first element of the list, and reduces size of the list by 1.
  • pop_back() – Removes the last element of the list, and reduces size of the list by 1
  • list::begin() and list::end() in C++ STLbegin() function returns an iterator pointing to the first element of the list
  • end() end() function returns an iterator pointing to the theoretical last element which follows the last element.
  • list rbegin() and rend() function in C++ STLrbegin() returns a reverse iterator which points to the last element of the list. rend() returns a reverse iterator which points to the position before the beginning of the list.
  • list cbegin() and cend() function in C++ STLcbegin() returns a constant random access iterator which points to the beginning of the list. cend() returns a constant random access iterator which points to the end of the list.
  • list crbegin() and crend() function in C++ STLcrbegin() returns a constant reverse iterator which points to the last element of the list i.e reversed beginning of container. crend() returns a constant reverse iterator which points to the theoretical element preceding the first element in the list i.e. the reverse end of the list.
  • empty() – Returns whether the list is empty(1) or not(0).
  • insert() – Inserts new elements in the list before the element at a specified position.
  • erase() – Removes a single element or a range of elements from the list.
  • assign() – Assigns new elements to list by replacing current elements and resizes the list.
  • remove() – Removes all the elements from the list, which are equal to given element.
  • list::remove_if() in C++ STL– Used to remove all the values from the list that correspond true to the predicate or condition given as parameter to the function.
  • reverse() – Reverses the list.
  • size() – Returns the number of elements in the list.
  • list resize()function in C++ STL– Used to resize a list container.
  • sort() – Sorts the list in increasing order.
  • list max_size() function in C++ STL– Returns the maximum number of elements a list container can hold.
  • list unique() in C++ STL– Removes all duplicate consecutive elements from the list.
  • list::emplace_front() and list::emplace_back() in C++ STLemplace_front() function is used to insert a new element into the list container, the new element is added to the beginning of the list. emplace_back() function is used to insert a new element into the list container, the new element is added to the end of the list.
  • list::clear() in C++ STLclear() function is used to remove all the elements of the list container, thus making it size 0.
  • list::operator= in C++ STL– This operator is used to assign new contents to the container by replacing the existing contents.
  • list::swap() in C++ STL– This function is used to swap the contents of one list with another list of same type and size.
  • list splice() function in C++ STL– Used to transfer elements from one list to another.
  • list merge() function in C++ STL– Merges two sorted lists into one
  • list emplace() function in C++ STL– Extends list by inserting new element at a given position.

六一编程网

发表评论

Next Post

计算机微处理器介绍

周日 4月 26 , 2020
微处理器是计算机体系结构的重要组成部分,没有微处理器,您就无法在计算机系统上执行任何操作。它是一种可 […]