(Translated by https://www.hiragana.jp/)
C++ Standard Library: Difference between revisions - Wikipedia Jump to content

C++ Standard Library: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
uses dmy dates
wthyfryuiy7itiu
Tag: repeating characters
Line 31: Line 31:
;<memory>:Provides facilities for [[memory management]] in C++, including the class template <code>[[auto ptr|std::auto_ptr]]</code>.
;<memory>:Provides facilities for [[memory management]] in C++, including the class template <code>[[auto ptr|std::auto_ptr]]</code>.
;<stdexcept>:Contains standard exception classes such as <code>std::logic_error</code> and <code>std::runtime_error</code>, both derived from <code>std::exception</code>.
;<stdexcept>:Contains standard exception classes such as <code>std::logic_error</code> and <code>std::runtime_error</code>, both derived from <code>std::exception</code>.
;<tuple>:New in C++11 and TR1. Provides a class template <code>[[tuple (C++)|std::tuple]]</code>, a [[tuple]].
;<tuple>:New in C++11 and TR1. Provides a class template <code>[[tuple (C++)|std::tuple]]</code>, a [[tuple]].45wwwwwwwwwwwwwwwwwwwwwwwwwwwwgysrttttttyjyulip
;<utility>:Provides the template class <code>std::pair</code>, for working with pairs (two-member [[tuple]]s) of objects.
;<utility>:Provides the template class <code>std::pair</code>, for working with pairs (two-member [[tuple]]s) of objects.



Revision as of 04:28, 14 February 2012

In C++, the C++ Standard Library is a collection of classes and functions, which are written in the core language and part of the C++ ISO Standard itself.[1] The C++ Standard Library provides several generic containers, functions to utilise and manipulate these containers, function objects, generic strings and streams (including interactive and file I/O), support for some language features, and everyday functions for tasks such as finding the square root of a number. The C++ Standard Library also incorporates 18 headers of the ISO C90 C standard library ending with ".h", but their use is deprecated.[2] All other headers in the C++ Standard Library do not end in ".h". Features of the C++ Standard Library are declared within the std namespace.

The C++ Standard Library is based upon conventions introduced by the Standard Template Library (STL). Although the C++ Standard Library and the STL share many features, neither is a strict superset of the other. In particular, the C++ Standard Library has also been influenced[3] by the work of Alexander Stepanov and Meng Lee.[4]

The C++ Standard Library underwent ISO standardization as part of the C++ ISO Standardization effort, and is undergoing further work[5] regarding standardization of expanded functionality.

Standard headers

The following files contain the declarations of the C++ Standard Library.

Containers

<array>
New in C++11 and TR1. Provides the container class template std::array, a container for a fixed sized array.
<bitset>
Provides the specialized container class std::bitset, a bit array.
<deque>
Provides the container class template std::deque, a double-ended queue.
<forward_list>
New in C++11 and TR1. Provides the container class template std::forward_list, a singly linked list.
<list>
Provides the container class template std::list, a doubly linked list.
<map>
Provides the container class templates std::map and std::multimap, sorted 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.
<unordered_map>
New in C++11 and TR1. Provides the container class template std::unordered_map and std::unordered_multimap, hash tables.
<unordered_set>
New in C++11 and TR1. Provides the container class template std::unordered_set and std::unordered_multiset.
<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.
<tuple>
New in C++11 and TR1. Provides a class template std::tuple, a tuple.45wwwwwwwwwwwwwwwwwwwwwwwwwwwwgysrttttttyjyulip
<utility>
Provides the template class std::pair, for working with pairs (two-member tuples) of objects.

Strings

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

Streams and Input/Output

<fstream>
Provides facilities for file-based input and output. See fstream.
<iomanip>
Provides facilities to manipulate output formatting, such as the base used when formatting integers and the precision of floating point values.
<ios>
Provides several types and functions basic to the operation of iostreams.
<iosfwd>
Provides forward declarations of several I/O-related class templates.
<iostream>
Provides C++ input and output fundamentals. See iostream.
<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>
Provides reading and writing functionality to/from certain types of character sequences, such as external files or strings.

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 the standard library are allowed to be implemented by macros, which is not allowed by ISO C++.

See also

References

  1. ^ ISO/IEC 14882:2003(E) Programming Languages — C++ §17-27
  2. ^ ISO/IEC 14882:2003(E) Programming Languages — C++ §D.5
  3. ^ Bjarne Stroustrup. The Design and Evolution of C++ §8.5. Addison Wesley. ISBN 0-201-54330-3.
  4. ^ Alexander Stepanov, Meng Lee (1 August 1994). "The Standard Template Library". HP Labs. Retrieved 2 December 2011.
  5. ^ "JTC1/SC22/WG21 - The C++ Standards Committee". ISO/IEC. Retrieved 7 July 2009.