This header is part of the containers library.
Includes | |
<initializer_list> (C++11) | |
Classes | |
(since C++11) | static contiguous array (class template) |
obtains the size of an array (class template specialization) | |
obtains the type of the elements of array (class template specialization) | |
Functions | |
lexicographically compares the values in the array (function template) | |
accesses an element of an array (function template) | |
(C++11) | specializes the std::swap algorithm (function template) |
Synopsis
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #include <initializer_list> namespace std { template < class T, size_t N > struct array; template < class T, size_t N> bool operator==( const array<T,N>& x, const array<T,N>& y); template < class T, size_t N> bool operator!=( const array<T,N>& x, const array<T,N>& y); template < class T, size_t N> bool operator<( const array<T,N>& x, const array<T,N>& y); template < class T, size_t N> bool operator>( const array<T,N>& x, const array<T,N>& y); template < class T, size_t N> bool operator<=( const array<T,N>& x, const array<T,N>& y); template < class T, size_t N> bool operator>=( const array<T,N>& x, const array<T,N>& y); template < class T, size_t N > void swap(array<T,N>& x, array<T,N>& y) noexcept(noexcept(x.swap(y))); template < class T> class tuple_size; template < size_t I, class T> class tuple_element; template < class T, size_t N> struct tuple_size<array<T, N> >; template < size_t I, class T, size_t N> struct tuple_element<I, array<T, N> >; template < size_t I, class T, size_t N> T& get(array<T, N>&) noexcept; template < size_t I, class T, size_t N> T&& get(array<T, N>&&) noexcept; template < size_t I, class T, size_t N> const T& get( const array<T, N>&) noexcept; } |
Class std::array
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | template < class T, size_t N > struct array { // types: typedef T& reference; typedef const T& const_reference; typedef /*implementation-defined*/ iterator; typedef /*implementation-defined*/ const_iterator; typedef size_t size_type; typedef ptrdiff_t difference_type; typedef T value_type; typedef T* pointer; typedef const T* const_pointer; typedef reverse_iterator<iterator> reverse_iterator; typedef reverse_iterator<const_iterator> const_reverse_iterator; T elems[N]; // exposition only // no explicit construct/copy/destroy for aggregate type void fill( const T& u); void swap(array<T, N>&) noexcept(noexcept(swap(declval<T&>(), declval<T&>()))); // iterators: iterator begin() noexcept; const_iterator begin() const noexcept; iterator end() noexcept; const_iterator end() const noexcept; reverse_iterator rbegin() noexcept; const_reverse_iterator rbegin() const noexcept; reverse_iterator rend() noexcept; const_reverse_iterator rend() const noexcept; const_iterator cbegin() noexcept; const_iterator cend() noexcept; const_reverse_iterator crbegin() const noexcept; const_reverse_iterator crend() const noexcept; // capacity: constexpr size_type size() noexcept; constexpr size_type max_size() noexcept; constexpr bool empty() noexcept; // element access: reference operator[](size_type n); const_reference operator[](size_type n) const ; const_reference at(size_type n) const ; reference at(size_type n); reference front(); const_reference front() const ; reference back(); const_reference back() const ; T * data() noexcept; const T * data() const noexcept; }; |
Note
The variable array::elems
is only for exposition, it's not part of the interface.
Please login to continue.