C++ Standard Template Library [C++ Reference]
Keywords: stl,start
Date: 2010-02-22T13:18:39-0800

[[C++ Standard Template Library]]
C++ Reference
Translations of this page?:

- en
- br-pt
- cn
- cz
- de
- es
- fr
- it
- jp
- nl
- pl
- ro
- ru
- sk
- tr
- tw

## 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 <functional> header file defines function objects and function adapters.

### Memory

The <memory> header file provides simple memory management structures like auto_ptr.

### Utility

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

Edit this page • Old revisions
• • • Login • Index • Recent changes • RSS • cc •