What is the Standard Template Library(STL) ?
The Standard Template Library (STL) is a software library for the C++ programming language. It provides four components called containers, iterators, algorithms and functional. STL library lies in the std namespace.
Why do we need to use the STL?
1. There is no use in inventing a wheel that has been in presence for decades.
2. STL in C++ provides humongous number of ready-made common classes, such as containers that can be used in any built and user defined type, that supports elementary operations like (such as copying and assignment).
*You should know how to write these data structures yourself. This knowledge will help you choose the best STL data structure required for your need.
Containers are objects that store data. Inbuilt implementations of various abstract data types are available in STL.
The container manages the storage space that is allocated for its elements and provides member functions to access them, either directly or through iterators (objects with similar properties to pointers).
Most containers have at least several member functions in common, and share functionalities. Which container is the best for the particular application depends not only on the offered functionality, but also on its efficiency for different workloads.
Header file :- In most of the cases, header files of the container have their name of the of form, <containerName>. For instance the header files of vector, stack, deque are <vector>, <stack>, <deque> respectively.
An iterator is any object that, pointing to some element in a range of elements (such as an array or a container), has the ability to iterate through the elements of that range using a set of operators (with at least the increment (++) and dereference (*) operators).
Header file :- <iterator>
There are 5 types of iterators :-
The algorithms library defines functions for a variety of purposes (e.g. searching, sorting, counting, manipulating) that operate on ranges of elements. Note that a range is defined as [first, last) where last refers to the element past the last element to inspect or modify. The exhaustive list of functions available in algorithm can be read from cplusplus reference.
Header file :- <algorithm>
Functional provides a set of predefined class templates for function objects, including operations for arithmetic, comparisons, and logic.
Header file :- <functional>