Class template array
boost::array — STL compliant container wrapper for arrays of constant size
Synopsis
template<typename T, std::size_t N> class array { public: // types typedef T value_type; typedef T* iterator; typedef const T* const_iterator; typedef std::reverse_iterator<iterator> reverse_iterator; typedef std::reverse_iterator<const_iterator> const_reverse_iterator; typedef T& reference; typedef const T& const_reference; typedef std::size_t size_type; typedef std::ptrdiff_t difference_type; // static constants static const size_type static_size = N; // construct/copy/destruct template<typename U> array& operator=(const array<U, N>&); // iterator support iterator begin(); const_iterator begin() const; iterator end(); const_iterator end() const; // reverse iterator support reverse_iterator rbegin(); const_reverse_iterator rbegin() const; reverse_iterator rend(); const_reverse_iterator rend() const; // capacity size_type size(); bool empty(); size_type max_size(); // element access reference operator[](size_type); const_reference operator[](size_type) const; reference at(size_type); const_reference at(size_type) const; reference front(); const_reference front() const; reference back(); const_reference back() const; const T* data() const; T* c_array(); // modifiers void swap(array<T, N>&); void assign(const T&); T elems[N]; }; // specialized algorithms template<typename T, std::size_t N> void swap(array<T, N>&, array<T, N>&); // comparisons template<typename T, std::size_t N> bool operator==(const array<T, N>&, const array<T, N>&); template<typename T, std::size_t N> bool operator!=(const array<T, N>&, const array<T, N>&); template<typename T, std::size_t N> bool operator<(const array<T, N>&, const array<T, N>&); template<typename T, std::size_t N> bool operator>(const array<T, N>&, const array<T, N>&); template<typename T, std::size_t N> bool operator<=(const array<T, N>&, const array<T, N>&); template<typename T, std::size_t N> bool operator>=(const array<T, N>&, const array<T, N>&);
Description
array element access
-
reference operator[](size_type i); const_reference operator[](size_type i) const;
Requires:
i < NReturns:
element with index iThrows:
will not throw. -
reference at(size_type i); const_reference at(size_type i) const;
Returns:
element with index iThrows:
std::range_errorifi >= N -
reference front(); const_reference front() const;
Requires:
N > 0Returns:
the first element Throws:
will not throw -
reference back(); const_reference back() const;
Requires:
N > 0Returns:
the last element Throws:
will not throw -
const T* data() const;
Returns:
elemsThrows:
will not throw -
T* c_array();
Returns:
elemsThrows:
will not throw
array comparisons
-
template<typename T, std::size_t N> bool operator==(const array<T, N>& x, const array<T, N>& y);
-
template<typename T, std::size_t N> bool operator!=(const array<T, N>& x, const array<T, N>& y);
Returns:
!(x == y) -
template<typename T, std::size_t N> bool operator<(const array<T, N>& x, const array<T, N>& y);
-
template<typename T, std::size_t N> bool operator>(const array<T, N>& x, const array<T, N>& y);
Returns:
y < x -
template<typename T, std::size_t N> bool operator<=(const array<T, N>& x, const array<T, N>& y);
Returns:
!(y < x) -
template<typename T, std::size_t N> bool operator>=(const array<T, N>& x, const array<T, N>& y);
Returns:
!(x < y)
