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>