std::array
From cppreference.com
                    
                                        
                    
                    
                                                            
                    | Defined in header <array>
  | ||
| template<      class T,  | (since C++11) | |
array is a container that encapsulates constant size arrays.  
This struct is designed to provide the benefits of a standard container (an array knows its own size, supports assignment, random access iterators, etc.) while still providing the aggregate type semantics of C-style arrays.
There is a special case for a zero-length array (N == 0). In that case, array.begin() == array.end(), which is some unique value.  The effect of calling front() or back() on a zero-sized array is undefined.
array is a class aggregate which allows it to use aggregate-initialization.
| Contents | 
[edit] Member types
| Member type | Definition | 
| value_type | T | 
| size_type | size_t | 
| difference_type | ptrdiff_t | 
| reference | value_type& | 
| const_reference | const value_type& | 
| pointer | T* | 
| const_pointer | const T* | 
| iterator | RandomAccessIterator | 
| const_iterator | Constant random access iterator | 
| reverse_iterator | std::reverse_iterator<iterator> | 
| const_reverse_iterator | std::reverse_iterator<const_iterator> | 
[edit] Member functions
| Element access | |
| access specified element with bounds checking (public member function) | |
| access specified element (public member function) | |
| access the first element (public member function) | |
| access the last element (public member function) | |
| (C++11) | direct access to the underlying array (public member function) | 
| Iterators | |
| returns an iterator to the beginning (public member function) | |
| returns an iterator to the end (public member function) | |
| returns a reverse iterator to the beginning (public member function) | |
| returns a reverse iterator to the end (public member function) | |
| Capacity | |
| checks whether the container is empty (public member function) | |
| returns the number of elements (public member function) | |
| returns the maximum possible number of elements (public member function) | |
| Operations | |
| fill the container with specified value (public member function) | |
| swaps the contents (public member function) | |
[edit] Non-member functions
| lexicographically compares the values in the array (function template) | |
| accesses an element of an array (function template) | |
| specializes the std::swap algorithm (function template) | |
[edit] Helper classes
| obtains the size of an array (class template specialization) | |
| obtains the type of the elements of array (class template specialization) | |

