Templates allow you to write functions and classes that work the same way on different types. For example, the vector class works the same way no matter if you're making a vector of ints, chars, or whatever. You use the angle brackets to specify what type of vector it is.
One of the worst things in C++ though are the errors you get when templates are used.