The interface of C++ standard library is defined by the following collection of header files.
Concepts library |
<concepts> (since C++20) | Fundamental library concepts |
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 |
Algorithms library |
<algorithm> | Algorithms that operate on containers |
<execution> (C++17) | Predefined execution policies for parallel versions of the algorithms |
Iterators library |
<iterator> | Container iterators |
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 |
|
<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) | 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 |
Extension for Parallelism |
<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 |
Extensions for Library Fundamentals |
<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 |
Extensions for Concurrency |
<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 |
Extensions for Library Fundamentals 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 |