Friday, October 30, 2009

C++ Standard Template Library

C++ Standard Template Library

The C++ STL (Standard Template Library) is a generic collection of class templates and algorithms that allow programmers to easily implement standard data structures like queues, lists, and stacks.

STL Containers

The C++ STL provides two kinds of containers:

  • Sequence Containers
    • C++ Vectors
    • C++ Lists
    • C++ Double-Ended Queues
  • Associative Containers
    • C++ Maps
    • C++ Multimaps
    • C++ Sets
    • C++ Multisets


In addition, the C++ standard library provides several non-STL containers.
They can be considered containers, but don't meet all the requirements of STL containers.

  • Container Adapters
    • C++ Stacks
    • C++ Queues
    • C++ Priority Queues
  • Others
    • C++ Bitsets
    • C++ Valarrays


The idea behind the C++ STL is that the hard part of using complex data structures has already been completed. If a programmer would like to use a stack of integers, all one has to do is use this code:

  stack<int> myStack;

With minimal effort, one can now push and pop integers onto this stack. Through the magic of C++ Templates, one could specify any data type, not just integers. The STL Stack class will provide generic functionality of a stack, regardless of the data in the stack.

Algorithms

In addition, the STL also provides a bunch of useful algorithms – such as binary_search, sort, and for_each – that can be used on a variety of containers or data structures.

Iterators

C++ Iterators provide a generic way of iterating over the STL containers or other data structures.

Function Objects

The header file defines function objects and function adapters.

Memory

The header file provides simple memory management structures like auto_ptr.

Utility

There are several generic utility methods like make_pair in the header file.

No comments:

Post a Comment

Popular Posts