# Templates
In this article, you will learn about Templates in C++ and it's useful for generic programming in C++.
Templates are a feature of the C++ programming language that allows single functions and classes to handle different data types. This helps you to write generic programs.
# Generic Programming
Generic programming is a style of computer programming in which program are not compiled as it is but rather 'Templates' of source code are transform into source code at the time of compilation according to supplied datatype as parameters
In Templates of C++ template of class or function is defined with general data type and is replaced by a specified data type at the time of actual use of class or function , Hence it follow Generic programming
An Example to Begin With
This program add two number of different data type according to type of supplied argument
Output
Result of adding two float : 13.7
Result of adding two integer : 13
At the time of compilation 'a' is replaced by datatype according to supplied data type such as :
int add (int c , int d)
{
int sum ;
sum = c + d ;
return sum;
}
2
3
4
5
6
Type of Templates:
- Function Templates
- Class Templates
# Function Templates:
Function Template is a template which is used to define function which can handle arguments of different types in different times
This avoids overhead of rewriting a function having body of same patterns but operating for different data types.Defining a function template contains two steps
- Defining general data type :
template <class template_name>
Defining a function with general data type :
template_name function_name(arguments.....)
{
//body of function with data type
}
2
3
4
5
6
7
8
# Class Templates:
A class template is a kind of class which has member of template type and the actual type of data being manipulated will be specified as a parameter when the object of that class will be created
Template classes provide mechanism for creating applications with generic types , which are common applications such as lists ,stacks and queues etc .Defining a class template contains three steps
# Defining template :
template <class template_name>
Defining class with members of template type :
class class_name {
// class member with datatypes template_name whenever appropriate
}
2
3
Defining objects :
class_name <specific_data_type> object_name
# Standard Template Library:
Standard Template Library is a software library for the C++ programming language that mainly operate in data providing container to manage collection of objects of a certain type , algorithms to perform actions on object of container , and iterators to steps through elements of container. Containers
Containers are used to manage collections of objects of certain kind. There are several different types of containers like list , map , vector etc Algorithms
Algorithms act on containers . They provide means by which we will perform initialization , sorting , searching etc Iterators
Iterators are used to step through elements of collections of objects . These collections may be containers or subsets of containers