STL-09 List in C++ Standard Template Library (STL)

List in C++ Standard Template Library (STL)

Lists are sequence containers that allow non-contiguous memory allocation. As compared to vector, list has slow traversal, but once a position has been found, insertion and deletion are quick. Normally, when we say a List, we talk about doubly linked list. For implementing a singly linked list, we use forward list.

Below is the program to show the working of some functions of 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;

}

The output of the above program is :

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

Functions used with List:

  • 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
  • begin()begin() 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.
  • rbegin() and rend()rbegin() 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.
  • cbegin() and cend()cbegin() 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.
  • crbegin() and crend()crbegin() 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.
  • remove_if()– 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.
  • resize()– Used to resize a list container.
  • sort()– Sorts the list in increasing order.
  • max_size()– Returns the maximum number of elements a list container can hold.
  • unique()– Removes all duplicate consecutive elements from the list.
  • emplace_front() and emplace_back()emplace_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.
  • clear()clear() function is used to remove all the elements of the list container, thus making it size 0.
  • =– This operator is used to assign new contents to the container by replacing the existing contents.
  • swap()– This function is used to swap the contents of one list with another list of same type and size.
  • splice()– Used to transfer elements from one list to another.
  • merge()– Merges two sorted lists into one
  • emplace()– Extends list by inserting new element at a given position.

Above are all bound methods for list. For more detailed usage of these methods, feel free to turn to Google or Baidu for help.

More about c++ STL, turn to this page.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值