C++ STL Tutorial


Hope you have already understood the concept of C++ Template which we have discussed earlier. The C++ STL (Standard Template Library) is a powerful set of C++ template classes to provide general-purpose classes and functions with templates that implement many popular and commonly used algorithms and data structures like vectors, lists, queues, and stacks.

At the core of the C++ Standard Template Library are following three well-structured components −

Sr.No Component & Description


Containers are used to manage collections of objects of a certain kind. There are several different types of containers like deque, list, vector, map etc.



Algorithms act on containers. They provide the means by which you will perform initialization, sorting, searching, and transforming of the contents of containers.



Iterators are used to step through the elements of collections of objects. These collections may be containers or subsets of containers.

We will discuss about all the three C++ STL components in next chapter while discussing C++ Standard Library. For now, keep in mind that all the three components have a rich set of pre-defined functions which help us in doing complicated tasks in very easy fashion.

Let us take the following program that demonstrates the vector container (a C++ Standard Template) which is similar to an array with an exception that it automatically handles its own storage requirements in case it grows −

#include <iostream>
#include <vector>
using namespace std;
int main() {

   // create a vector to store int
   vector<int> vec; 
   int i;

   // display the original size of vec
   cout << "vector size = " << vec.size() << endl;

   // push 5 values into the vector
   for(i = 0; i < 5; i++) {

   // display extended size of vec
   cout << "extended vector size = " << vec.size() << endl;

   // access 5 values from the vector
   for(i = 0; i < 5; i++) {
      cout << "value of vec [" << i << "] = " << vec[i] << endl;

   // use iterator to access the values
   vector<int>::iterator v = vec.begin();
   while( v != vec.end()) {
      cout << "value of v = " << *v << endl;

   return 0;

When the above code is compiled and executed, it produces the following result −

vector size = 0
extended vector size = 5
value of vec [0] = 0
value of vec [1] = 1
value of vec [2] = 2
value of vec [3] = 3
value of vec [4] = 4
value of v = 0
value of v = 1
value of v = 2
value of v = 3
value of v = 4

Here are following points to be noted related to various functions we used in the above example −

  • The push_back( ) member function inserts value at the end of the vector, expanding its size as needed.

  • The size( ) function displays the size of the vector.

  • The function begin( ) returns an iterator to the start of the vector.

  • The function end( ) returns an iterator to the end of the vector.

Useful Video Courses


C++ Online Training

154 Lectures 11.5 hours

Arnab Chakraborty


Learn C++ Pointers with Visual Studio 2017

14 Lectures 57 mins

Kaushik Roy Chowdhury


Modern OpenGL C++ 3D Game & 3D Rendering

30 Lectures 12.5 hours

Frahaan Hussain


Cocos2d-x v3 C++ - Beginning Game Development

54 Lectures 3.5 hours

Frahaan Hussain


C++ Development - The Complete Coding Guide

77 Lectures 5.5 hours

Frahaan Hussain


Tic-Tac-Toe Clone - The Complete Cocos2d-x C++ Game Course

12 Lectures 3.5 hours

Frahaan Hussain