The interface of C++ standard library is defined by the following collection of headers.
Concepts library
|
<concepts> (since C++20)
|
Fundamental library concepts
|
Coroutines library
|
<coroutine> (since C++20)
|
Coroutine support library
|
Utilities library
|
<cstdlib>
|
General purpose utilities: program control, dynamic memory allocation, random numbers, sort and search
|
<csignal>
|
Functions and macro constants for signal management
|
<csetjmp>
|
Macro (and function) that saves (and jumps) to an execution context
|
<cstdarg>
|
Handling of variable length argument lists
|
<typeinfo>
|
Runtime type information utilities
|
<typeindex> (since C++11)
|
std::type_index
|
<type_traits> (since C++11)
|
Compile-time type information
|
<bitset>
|
std::bitset class template
|
<functional>
|
Function objects, Function invocations, Bind operations and Reference wrappers
|
<utility>
|
Various utility components
|
<ctime>
|
C-style time/date utilites
|
<chrono> (since C++11)
|
C++ time utilites
|
<cstddef>
|
standard macros and typedefs
|
<initializer_list> (since C++11)
|
std::initializer_list class template
|
<tuple> (since C++11)
|
std::tuple class template
|
<any> (since C++17)
|
std::any class
|
<optional> (since C++17)
|
std::optional class template
|
<variant> (since C++17)
|
std::variant class template
|
<compare> (since C++20)
|
Three-way comparison operator support
|
<version> (since C++20)
|
supplies implementation-dependent library information
|
Dynamic memory management
|
<new>
|
Low-level memory management utilities
|
<memory>
|
Higher level memory management utilities
|
<scoped_allocator> (since C++11)
|
Nested allocator class
|
<memory_resource> (since C++17)
|
Polymorphic allocators and memory resources
|
Numeric limits
|
<climits>
|
limits of integral types
|
<cfloat>
|
limits of float types
|
<cstdint> (since C++11)
|
fixed-size types and limits of other types
|
<cinttypes> (since C++11)
|
formatting macros , intmax_t and uintmax_t math and conversions
|
<limits>
|
standardized way to query properties of arithmetic types
|
Error handling
|
<exception>
|
Exception handling utilities
|
<stdexcept>
|
Standard exception objects
|
<cassert>
|
Conditionally compiled macro that compares its argument to zero
|
<system_error> (since C++11)
|
defines std::error_code , a platform-dependent error code
|
<cerrno>
|
Macro containing the last error number
|
<contract> (since C++20)
|
Contract violation information
|
Strings library
|
<cctype>
|
Functions to determine the type contained in character data
|
<cwctype>
|
Functions to determine the type contained in wide character data
|
<cstring>
|
various narrow character string handling functions
|
<cwchar>
|
various wide and multibyte string handling functions
|
<cuchar> (since C++11)
|
C-style Unicode character conversion functions
|
<string>
|
std::basic_string class template
|
<string_view> (since C++17)
|
std::basic_string_view class template
|
<charconv> (since C++17)
|
std::to_chars and std::from_chars
|
Containers library
|
<array> (since C++11)
|
std::array container
|
<vector>
|
std::vector container
|
<deque>
|
std::deque container
|
<list>
|
std::list container
|
<forward_list> (since C++11)
|
std::forward_list container
|
<set>
|
std::set and std::multiset associative containers
|
<map>
|
std::map and std::multimap associative containers
|
<unordered_set> (since C++11)
|
std::unordered_set and std::unordered_multiset unordered associative containers
|
<unordered_map> (since C++11)
|
std::unordered_map and std::unordered_multimap unordered associative containers
|
<stack>
|
std::stack container adaptor
|
<queue>
|
std::queue and std::priority_queue container adaptors
|
<span> (since C++20)
|
std::span view
|
Iterators library
|
<iterator>
|
Range iterators
|
Ranges library
|
<ranges> (since C++20)
|
Range access, primitives, requirements, utilities and adaptors
|
Algorithms library
|
<algorithm>
|
Algorithms that operate on ranges
|
<execution> (since C++17)
|
Predefined execution policies for parallel versions of the algorithms
|
Numerics library
|
<cmath>
|
Common mathematics functions
|
<complex>
|
Complex number type
|
<valarray>
|
Class for representing and manipulating arrays of values
|
<random> (since C++11)
|
Random number generators and distributions
|
<numeric>
|
Numeric operations on values in containers
|
<ratio> (since C++11)
|
Compile-time rational arithmetic
|
<cfenv> (since C++11)
|
Floating-point environment access functions
|
<bit> (since C++20)
|
Bit manipulation functions
|
Input/output library
|
<iosfwd>
|
forward declarations of all classes in the input/output library
|
<ios>
|
std::ios_base class, std::basic_ios class template and several typedefs
|
<istream>
|
std::basic_istream class template and several typedefs
|
<ostream>
|
std::basic_ostream, std::basic_iostream class templates and several typedefs
|
<iostream>
|
several standard stream objects
|
<fstream>
|
std::basic_fstream, std::basic_ifstream, std::basic_ofstream class templates and several typedefs
|
<sstream>
|
std::basic_stringstream, std::basic_istringstream, std::basic_ostringstream class templates and several typedefs
|
<syncstream> (since C++20)
|
std::basic_osyncstream, std::basic_syncbuf, and typedefs
|
<strstream> (deprecated in C++98)
|
std::strstream, std::istrstream, std::ostrstream
|
<iomanip>
|
Helper functions to control the format of input and output
|
<streambuf>
|
std::basic_streambuf class template
|
<cstdio>
|
C-style input-output functions
|
Localization library
|
<locale>
|
Localization utilities
|
<clocale>
|
C localization utilities
|
<codecvt> (since C++11)(deprecated in C++17)
|
Unicode conversion facilities
|
Regular Expressions library
|
<regex> (since C++11)
|
Classes, algorithms and iterators to support regular expression processing
|
Atomic Operations library
|
<atomic> (since C++11)
|
Atomic operations library
|
Thread support library
|
<thread> (since C++11)
|
std::thread class and supporting functions
|
<mutex> (since C++11)
|
mutual exclusion primitives
|
<shared_mutex> (since C++14)
|
shared mutual exclusion primitives
|
<future> (since C++11)
|
primitives for asynchronous computations
|
<condition_variable> (since C++11)
|
thread waiting conditions
|
Filesystem library
|
<filesystem> (since C++17)
|
std::path class and supporting functions
|
Experimental libraries
|
Filesystem TS
|
<experimental/filesystem> (filesystem TS)
|
Filesystem library
|
Parallelism TS
|
<experimental/algorithm> (parallelism TS)
|
Non-numeric parallel algorithms
|
<experimental/execution_policy> (parallelism TS)
|
Execution policies
|
<experimental/exception_list> (parallelism TS)
|
Parallel exceptions
|
<experimental/numeric> (parallelism TS)
|
Numeric parallel algorithms
|
Library Fundamentals TS
|
<experimental/algorithm> (library fundamentals TS)
|
sample and search
|
<experimental/any> (library fundamentals TS)
|
any
|
<experimental/chrono> (library fundamentals TS)
|
Variable templates for type traits
|
<experimental/deque> (library fundamentals TS)
|
Convenience aliases for containers using polymorphic allocators
|
<experimental/forward_list> (library fundamentals TS)
|
Convenience aliases for containers using polymorphic allocators
|
<experimental/future> (library fundamentals TS)
|
promise and packaged_task using polymorphic allocators
|
<experimental/list> (library fundamentals TS)
|
Convenience aliases for containers using polymorphic allocators
|
<experimental/functional> (library fundamentals TS)
|
function using polymorphic allocators and searchers
|
<experimental/map> (library fundamentals TS)
|
Convenience aliases for containers using polymorphic allocators
|
<experimental/memory> (library fundamentals TS)
|
shared_ptr and weak_ptr with array support
|
<experimental/memory_resource> (library fundamentals TS)
|
Polymorphic allocators and memory resources
|
<experimental/optional> (library fundamentals TS)
|
optional
|
<experimental/ratio> (library fundamentals TS)
|
Variable templates for type traits
|
<experimental/regex> (library fundamentals TS)
|
Convenience aliases for containers using polymorphic allocators
|
<experimental/set> (library fundamentals TS)
|
Convenience aliases for containers using polymorphic allocators
|
<experimental/string> (library fundamentals TS)
|
Convenience aliases for containers using polymorphic allocators
|
<experimental/string_view> (library fundamentals TS)
|
basic_string_view
|
<experimental/system_error> (library fundamentals TS)
|
Variable templates for type traits
|
<experimental/tuple> (library fundamentals TS)
|
Variable templates for type traits and apply
|
<experimental/type_traits> (library fundamentals TS)
|
Variable templates for type traits and invocation_type
|
<experimental/unordered_map> (library fundamentals TS)
|
Convenience aliases for containers using polymorphic allocators
|
<experimental/unordered_set> (library fundamentals TS)
|
Convenience aliases for containers using polymorphic allocators
|
<experimental/utility> (library fundamentals TS)
|
erased_type
|
<experimental/vector> (library fundamentals TS)
|
Convenience aliases for containers using polymorphic allocators
|
Concurrency TS
|
<experimental/atomic> (concurrency TS)
|
atomic_shared_ptr and atomic_weak_ptr
|
<experimental/barrier> (concurrency TS)
|
barrier and flex_barrier
|
<experimental/future> (concurrency TS)
|
Extensions for std::future
|
<experimental/latch> (concurrency TS)
|
latch
|
Library Fundamentals TS v2
|
<experimental/algorithm> (library fundamentals TS v2)
|
sample and shuffle
|
<experimental/array> (library fundamentals TS v2)
|
make_array and to_array
|
<experimental/deque> (library fundamentals TS v2)
|
erase and erase_if
|
<experimental/forward_list> (library fundamentals TS v2)
|
erase and erase_if
|
<experimental/functional> (library fundamentals TS v2)
|
not_fn
|
<experimental/iterator> (library fundamentals TS v2)
|
ostream_joiner
|
<experimental/list> (library fundamentals TS v2)
|
erase and erase_if
|
<experimental/map> (library fundamentals TS v2)
|
erase_if and erase_if
|
<experimental/memory> (library fundamentals TS v2)
|
observer_ptr
|
<experimental/numeric> (library fundamentals TS v2)
|
gcd and lcm
|
<experimental/propagate_const> (library fundamentals TS v2)
|
propagate_const
|
<experimental/random> (library fundamentals TS v2)
|
randint and reseed
|
<experimental/set> (library fundamentals TS v2)
|
erase_if and erase_if
|
<experimental/source_location> (library fundamentals TS v2)
|
source_location
|
<experimental/string> (library fundamentals TS v2)
|
erase and erase_if
|
<experimental/type_traits> (library fundamentals TS v2)
|
Metafunctions and detection idiom
|
<experimental/unordered_map> (library fundamentals TS v2)
|
erase_if and erase_if
|
<experimental/unordered_set> (library fundamentals TS v2)
|
erase_if and erase_if
|
<experimental/vector> (library fundamentals TS v2)
|
erase and erase_if
|
Ranges TS
|
<experimental/ranges/algorithm> (ranges TS)
|
Algorithms library
|
<experimental/ranges/concepts> (ranges TS)
|
Concepts library
|
<experimental/ranges/functional> (ranges TS)
|
Function objects
|
<experimental/ranges/iterator> (ranges TS)
|
Iterators library
|
<experimental/ranges/random> (ranges TS)
|
UniformRandomNumberGenerator concept
|
<experimental/ranges/range> (ranges TS)
|
Ranges library
|
<experimental/ranges/tuple> (ranges TS)
|
Tagged tuples
|
<experimental/ranges/type_traits> (ranges TS)
|
Metaprogramming and type traits
|
<experimental/ranges/utility> (ranges TS)
|
Utility components
|
<assert.h> (deprecated)
|
behaves as if each name from <cassert> is placed in global namespace
|
<ctype.h> (deprecated)
|
behaves as if each name from <cctype> is placed in global namespace
|
<errno.h> (deprecated)
|
behaves as if each name from <cerrno> is placed in global namespace
|
<fenv.h> (deprecated)
|
behaves as if each name from <cfenv> is placed in global namespace
|
<float.h> (deprecated)
|
behaves as if each name from <cfloat> is placed in global namespace
|
<inttypes.h> (deprecated)
|
behaves as if each name from <cinttypes> is placed in global namespace
|
<limits.h> (deprecated)
|
behaves as if each name from <climits> is placed in global namespace
|
<locale.h> (deprecated)
|
behaves as if each name from <clocale> is placed in global namespace
|
<math.h> (deprecated)
|
behaves as if each name from <cmath> is placed in global namespace except for names of mathematical special functions
|
<setjmp.h> (deprecated)
|
behaves as if each name from <csetjmp> is placed in global namespace
|
<signal.h> (deprecated)
|
behaves as if each name from <csignal> is placed in global namespace
|
<stdarg.h> (deprecated)
|
behaves as if each name from <cstdarg> is placed in global namespace
|
<stddef.h> (deprecated)
|
behaves as if each name from <cstddef> is placed in global namespace except for names of std::byte and related functions
|
<stdint.h> (deprecated)
|
behaves as if each name from <cstdint> is placed in global namespace
|
<stdio.h> (deprecated)
|
behaves as if each name from <cstdio> is placed in global namespace
|
<stdlib.h> (deprecated)
|
behaves as if each name from <cstdlib> is placed in global namespace
|
<string.h> (deprecated)
|
behaves as if each name from <cstring> is placed in global namespace
|
<time.h> (deprecated)
|
behaves as if each name from <ctime> is placed in global namespace
|
<uchar.h> (deprecated)
|
behaves as if each name from <cuchar> is placed in global namespace
|
<wchar.h> (deprecated)
|
behaves as if each name from <cwchar> is placed in global namespace
|
<wctype.h> (deprecated)
|
behaves as if each name from <cwctype> is placed in global namespace
|