Difference Between Forward List and List in C++ Last Updated : 29 Sep, 2022 Comments Improve Suggest changes Like Article Like Report Forward List is a sequence container that allows unidirectional sequential access to its data. It contains data of the same type. In STL, it has been implemented using Singly Linked List, which requires constant time for insertion and deletion. Elements of the forward list are scattered in the memory and the ordering is maintained by associating every element of the list by the next element of the list via a link. Thus, it makes efficient use of memory. It has been introduced from the C++11 version. Implementation of Forward List: C++ // CPP Program to demonstrate forward list #include <bits/stdc++.h> using namespace std; // Driver Code int main() { // Declaring forward list forward_list<int> flist1; // Assigning values using assign() flist1.assign({ 10, 12, 13, 15 }); // Displaying forward list cout << "The elements of forward list are : "; for (auto a : flist1) cout << a << " "; return 0; } Output: The elements of forward list are : 10 12 13 15 List is also a sequence container that allows bidirectional sequential access to its data. It contains data of the same type. In STL, it has been implemented using Doubly Linked List and it requires constant time for insertion and deletion. It allows non-contiguous memory allocation. Each element of the list is associated with a link to the element following it and preceding it. It is extensively used in sorting algorithm because of its constant insertion and deletion time and bidirectional sequential access. Implementation of List: C++ // CPP Program to demonstrate list #include <bits/stdc++.h> using namespace std; // Driver Code int main() { // Declaring a list list<int> list1; // Assigning values using assign() list1.assign({ 1, 2, 10, 15 }); // Displaying list cout << "The elements of list are : "; for (auto a : list1) cout << a << " "; return 0; } Output: The elements of list are : 1 2 10 15 Difference Between Forward List and ListForward List List Implemented using Singly Linked ListImplemented using Doubly Linked ListConsumes relatively less memoryConsumes relatively more memoryLess overhead in insertion and removal elements due to less pointer per node, thus it gives better performance.More overhead in insertion and removal elements due to more pointer per node, thus it gives poor performance.Sequential access in forward directionSequential access in both forward and reverse directionMore efficient than list.Less efficient than forward list.Generally used when unidirectional sequential access is needed like for implementing binary tree, hash table, stack, etc.Generally used when bidirectional sequential access is needed like for implementing chaining in hashing, adjacency list representation of graph, etc. Comment More infoAdvertise with us Next Article How to find Size of std::forward_list in C++ STL C chirags_30 Follow Improve Article Tags : Difference Between C++ DSA cpp-list CPP-forward-list +1 More Practice Tags : CPP Similar Reads Forward List in C++ STL In C++, forward_list container provides the implementation of singly linked list data structure. It stores data in non-contiguous memory where each element points to the next element in the sequence. This makes insertion and deletion faster once the position of the element is known.Example:C++#inclu 7 min read Commonly Used Methodsforward_list::begin() and forward_list::end() in C++ STLForward list in STL implements singly linked list. Introduced from C++11, the forward list is more useful than other containers in insertion, removal, and moving operations (like sort) and allows time constant insertion and removal of elements. It differs from list by the fact that the forward list 3 min read forward_list::push_front() and forward_list::pop_front() in C++ STLForward list in STL implements singly linked list. Introduced from C++11, forward list are useful than other containers in insertion, removal and moving operations (like sort) and allows time constant insertion and removal of elements.It differs from list by the fact that forward list keeps track of 4 min read forward_list assign() function in C++ STLThe forward_list::assign() is a function in C++ STL which assigns new content to a forward list, replacing its current content and adjusting its size as required.Syntax: Version 1:forward_list_name.assign(iterator it1, iterator it2) Version 2:forward_list_name.assign(int n, val) Version 3:forward_li 2 min read forward_list::front() and forward_list::empty() in C++ STLForward list in STL implements singly linked list. Introduced from C++11, forward list are useful than other containers in insertion, removal and moving operations (like sort) and allows time constant insertion and removal of elements.It differs from list by the fact that forward list keeps track of 3 min read forward_list::remove() and forward_list::remove_if() in C++ STLForward list in STL implements singly linked list. The forward list was introduced in C++11, and is useful than other containers in insertion, removal, and moving operations (like sort) and allows time constant insertion and removal of elements. It differs from the list by the fact that the forward 4 min read forward_list::clear() and forward_list::erase_after() in C++ STLForward list in STL implements singly linked list. Introduced from C++11, forward list are useful than other containers in insertion, removal and moving operations (like sort) and allows time constant insertion and removal of elements.It differs from list by the fact that forward list keeps track of 4 min read forward_list::reverse() in C++ STLstd::forward_list::reverse() is an inbuilt function in CPP STL which reverses the order of the elements present in the forward_list. Syntax: forwardlist_name.reverse()Parameter: The function does not accept any parameter. Return value: The function has no return value. It reverses the forward list. 1 min read forward_list::swap() in C++ STLThe forward_list::swap() is a built-in function in CPP STL which exchanges the contents of the first given forward_list with another forward_list. Syntax: swap(forward_list first, forward_list second) or forward_list1.swap(forward_list second) Parameters: The function accepts two parameters which ar 3 min read std::forward_list::sort() in C++ STLForward list in STL implements singly linked list. Introduced from C++11, forward list are useful than other containers in insertion, removal and moving operations (like sort) and allows time constant insertion and removal of elements.It differs from list by the fact that forward list keeps track of 3 min read Other Member Methodsforward_list insert_after() function in C++ STLThe forward_list::insert_after() is a builtin function in C++ STL which gives us a choice to insert elements at the position just after the element pointed by a given iterator in the forward list. The arguments in this function are copied at the desired position. Syntax: forward_list_name.insert_aft 3 min read forward_list::unique() in C++ STLforward_list::unique() is an inbuilt function in C++ STL which removes all consecutive duplicate elements from the forward_list. It uses binary predicate for comparison. Syntax: forwardlist_name.unique(BinaryPredicate name)Parameters: The function accepts a single parameter which is a binary predica 2 min read forward_list::cend() in C++ STL with Exampleforward_list::cend() is a function in C++ STL which returns a constant iterator pointing to the past-the-last element of the forward_list. The iterator returned by the function does not point to any element in the container, but to the position followed by the last element of the forward list contai 2 min read forward_list emplace_after() and emplace_front() in C++ STLThe forward_list::emplace_after() is a builtin function in C++ STL which is used to insert a new element after the element at position specified in the argument. This insertion of the new element increases the size of the container by one. Syntax: forward_list_name.emplace_after(iterator position, e 2 min read forward_list resize() function in C++ STLThe forward_list::resize() is an inbuilt function in C++ STL which changes the size of forward_list. If the given size is greater than the current size then new elements are inserted at the end of the forward_list. If the given size is smaller than current size then extra elements are destroyed. Syn 2 min read forward_list::splice_after() in C++ STLforward_list::splice_after() is an inbuilt function in CPP STL which transfers the elements in the range of first+1 to last from a given forward_list to another forward_list. The elements are inserted after the element pointed to by position in the parameter. Syntax: forwardlist1_name.splice_after(p 2 min read forward_list cbegin() in C++ STLThe forward_list::cbegin() is a function in C++ STL which returns a constant iterator pointing to the first element of the forward_list. Syntax: forward_list_name.cbegin() Parameters: This function does not accept any parameter. Return Value: This function returns an iterator that points to the cons 2 min read forward_list::max_size() in C++ STLstd::forward_list::max_size() is an inbuilt function in CPP STL which returns the maximum number of elements can be held by forward_list. This value depends on system or library implementation. Syntax: forwardlist_name.max_size ()Parameters: The function does not accept any parameters. Return value: 1 min read forward_list::before_begin() in C++ STLforward_list::before_begin() is an inbuilt function in C++ STL that returns an iterator that points to the position before the first element of the forward_list. Forward list in STL is a singly linked list implementation. This function comes under the <forward_list> header file. Syntax: forwar 1 min read forward_list::cbefore_begin() in C++ STLforward_list::cbefore_begin() is an inbuilt function in CPP STL which returns a constant random access iterator which points to the position before the first element of the forward_list. The iterator obtained by this function can be used to iterate in the container but cannot be used to modify the c 2 min read forward_list merge() in C++ STLforward_list::merge() is an inbuilt function in C++ STL which merges two sorted forward_lists into one. The merge() function can be used in two ways: Merge two forward lists that are sorted in ascending order into one. Merge two forward lists into one using a comparison function. Syntax: forwardlist 2 min read Forward List and List of Pairs in C++ with Examples Forward List Forward list in STL implements singly linked list. Introduced from C++11, forward lists are more useful than other containers in insertion, removal, and moving operations (like sort) and allow time constant insertion and removal of elements. It differs from the list by the fact that the 8 min read Forward List and List of Tuples in C++ with Examples What is Forward List? Forward list in STL is used to implement a singly linked list. It was introduced from C++11 onwards, forward lists are more useful than other containers in insertion, removal, and moving operations (like sort) and allow time constant insertion and removal of elements. It differ 9 min read Difference Between Forward List and List in C++ Forward List is a sequence container that allows unidirectional sequential access to its data. It contains data of the same type. In STL, it has been implemented using Singly Linked List, which requires constant time for insertion and deletion. Elements of the forward list are scattered in the memor 3 min read Common Forward List ProgramsHow to find Size of std::forward_list in C++ STLForward list in standard template library of C++. It comes under #include<forward_list> header file. It is implemented as a singly linked list. It was introduced in C++ 11 for the first time. Forward lists are sequence containers that allow constant time insert and erase operations from anywhe 3 min read Like