C++ Header Files [C++ Reference]
Keywords: header_files
Date: 2010-04-26T09:05:31-0700

## C++ Header Files

This page lists the various header files that are available in standard C++, grouped by topic.

### Containers

<bitset> | Provides the specialized container class std::bitset, a bit array.
<deque> | Provides the container class template std::deque, a double-ended queue.
<list> | Provides the container class template std::list, a doubly-linked list.
<map> | Provides the container class templates std::map and std::multimap, an associative array and multimap.
<queue> | Provides the container adapter class std::queue, a single-ended queue.
<set> | Provides the container class templates std::set and std::multiset, sorted associative containers or sets.
<stack> | Provides the container adapter class std::stack, a stack.
<vector> | Provides the container class template std::vector, a dynamic array.

### General

<algorithm> | Provides definitions of many container algorithms.
<functional> | Provides several function objects, designed for use with the standard algorithms.
<iterator> | Provides classes and templates for working with iterators.
<locale> | Provides classes and templates for working with locales.
<memory> | Provides facilities for memory management in C++, including the class template std::auto_ptr.
<stdexcept> | Contains standard exception classes such as std::logic_error and std::runtime_error, both derived from std::exception.
<utility> | Provides the template class std::pair, for working with pairs (two-member tuples) of objects.

### C++ Strings

<string> | Provides the C++ standard string classes and templates.

### C++ Streams and Input/Output

<fstream> | Provides facilities for file-based input and output.
<ios> | Provides several types and functions basic to the operation of iostreams.
<iostream> | Provides C++ input and output fundamentals.
<iosfwd> | Provides forward declarations of several I/O-related class templates.
<iomanip> | Provides facilities to manipulate output formatting, such as the base used when formatting integers and the precision of floating point values.
<istream> | Provides the template class std::istream and other supporting classes for input.
<ostream> | Provides the template class std::ostream and other supporting classes for output.
<sstream> | Provides the template class std::sstream and other supporting classes for string manipulation.
<streambuf> |

### Numerics

<complex> | Provides class template std::complex and associated functions for working with complex numbers.
<numeric> | Provides algorithms for numerical processing.
<valarray> | Provides the template class std::valarray, an array class optimized for numeric processing.

### Language Support

<exception> | Provides several types and functions related to exception handling, including std::exception, the base class of all exceptions thrown by the Standard Library.
<limits> | Provides the template class std::numeric_limits, used for describing properties of fundamental numeric types.
<new> | Provides operators new and delete and other functions and types composing the fundamentals of C++ memory management.
<typeinfo> | Provides facilities for working with C++ run-time type information.

### C Standard Library

Each header from the C standard library is included in the C++ standard library under a different name, generated by removing the .h, and adding a 'c' at the start, for example `time.h` becomes `ctime`. The only difference between these headers and the traditional C standard library headers is that where possible the functions should be placed into the `std:: namespace` (although few compilers actually do this). In ISO C, functions in standard library are allowed to be implemented by macros, which is not allowed by ISO C++.

- <cassert>
- <cctype>
- <cerrno>
- <cfloat>
- <climits>
- <cmath>
- <csetjmp>
- <csignal>
- <cstdlib>
- <cstddef>
- <cstdarg>
- <cstdio>
- <cstring>
- <ctime>
- <cwchar>
- <cwctype>