æ¨æºã©ã¤ãã©ãªããã <array>
æä¾: cppreference.com
ãã®ãããã¯ã³ã³ããã©ã¤ãã©ãªã®ä¸é¨ã§ãã
ã¤ã³ã¯ã«ã¼ã | ||
(C++20) |
䏿¹æ¯è¼æ¼ç®åãµãã¼ã | |
(C++11) |
std::initializer_list ã¯ã©ã¹ãã³ãã¬ã¼ã | |
ã¯ã©ã¹ | ||
(C++11) |
è¦ç´ ã飿¥ããéçãªé
å (ã¯ã©ã¹ãã³ãã¬ã¼ã) | |
array ã®ãµã¤ãºãåå¾ãã¾ã (ã¯ã©ã¹ãã³ãã¬ã¼ãã®ç¹æ®å) | ||
array ã®è¦ç´ ã®åãåå¾ãã¾ã (ã¯ã©ã¹ãã³ãã¬ã¼ãã®ç¹æ®å) | ||
颿° | ||
(C++20ã§åé¤)(C++20ã§åé¤)(C++20ã§åé¤)(C++20ã§åé¤)(C++20ã§åé¤)(C++20) |
array å
ã®å¤ãè¾æ¸çã«æ¯è¼ãã¾ã (颿°ãã³ãã¬ã¼ã) | |
(C++11) |
std::swap ã¢ã«ã´ãªãºã ã®ç¹æ®å (颿°ãã³ãã¬ã¼ã) | |
(C++20) |
çµã¿è¾¼ã¿ã®é
åãã std::array ãªãã¸ã§ã¯ãã使ãã¾ã (颿°ãã³ãã¬ã¼ã) | |
array ã®è¦ç´ ã«ã¢ã¯ã»ã¹ãã¾ã (颿°ãã³ãã¬ã¼ã) | ||
ç¯å²ã¢ã¯ã»ã¹ | ||
(C++11)(C++14) |
ã³ã³ããã¾ãã¯é
åã®å
é ãæãã¤ãã¬ã¼ã¿ãè¿ãã¾ã (颿°) | |
(C++11)(C++14) |
ã³ã³ããã¾ãã¯é
åã®çµç«¯ãæãã¤ãã¬ã¼ã¿ãè¿ãã¾ã (颿°) | |
(C++14) |
ã³ã³ããã¾ãã¯é
åã®å
é ãæãéã¤ãã¬ã¼ã¿ãè¿ãã¾ã (颿°) | |
(C++14) |
ã³ã³ããã¾ãã¯é
åã®çµç«¯ãæãéã¤ãã¬ã¼ã¿ãè¿ãã¾ã (颿°) | |
(C++17)(C++20) |
ã³ã³ããã¾ãã¯é
åã®ãµã¤ãºãè¿ãã¾ã (颿°ãã³ãã¬ã¼ã) | |
(C++17) |
ã³ã³ããã空ãã©ãã調ã¹ã¾ã (颿°) | |
(C++17) |
ãã¼ã¹ã¨ãªãé
åãæããã¤ã³ã¿ãåå¾ãã¾ã (颿°) |
[ç·¨é] æ¦è¦
#include <compare> #include <initializer_list> namespace std { // class template array template<class T, size_t N> struct array; template<class T, size_t N> constexpr bool operator==(const array<T, N>& x, const array<T, N>& y); template<class T, size_t N> constexpr /*synth-three-way-result*/<T> operator<=>(const array<T, N>& x, const array<T, N>& y); // specialized algorithms template<class T, size_t N> constexpr void swap(array<T, N>& x, array<T, N>& y) noexcept(noexcept(x.swap(y))); // array creation functions template<class T, size_t N> constexpr array<remove_cv_t<T>, N> to_array(T (&a)[N]); template<class T, size_t N> constexpr array<remove_cv_t<T>, N> to_array(T (&&a)[N]); // tuple interface template<class T> struct tuple_size; template<size_t I, class T> struct 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> constexpr T& get(array<T, N>&) noexcept; template<size_t I, class T, size_t N> constexpr T&& get(array<T, N>&&) noexcept; template<size_t I, class T, size_t N> constexpr const T& get(const array<T, N>&) noexcept; template<size_t I, class T, size_t N> constexpr const T&& get(const array<T, N>&&) noexcept; }
[ç·¨é] ã¯ã©ã¹ãã³ãã¬ã¼ã std::array
namespace std { template<class T, size_t N> struct array { // types using value_type = T; using pointer = T*; using const_pointer = const T*; using reference = T&; using const_reference = const T&; using size_type = size_t; using difference_type = ptrdiff_t; using iterator = /* implementation-defined */; using const_iterator = /* implementation-defined */; using reverse_iterator = std::reverse_iterator<iterator>; using const_reverse_iterator = std::reverse_iterator<const_iterator>; // no explicit construct/copy/destroy for aggregate type constexpr void fill(const T& u); constexpr void swap(array&) noexcept(is_nothrow_swappable_v<T>); // iterators constexpr iterator begin() noexcept; constexpr const_iterator begin() const noexcept; constexpr iterator end() noexcept; constexpr const_iterator end() const noexcept; constexpr reverse_iterator rbegin() noexcept; constexpr const_reverse_iterator rbegin() const noexcept; constexpr reverse_iterator rend() noexcept; constexpr const_reverse_iterator rend() const noexcept; constexpr const_iterator cbegin() const noexcept; constexpr const_iterator cend() const noexcept; constexpr const_reverse_iterator crbegin() const noexcept; constexpr const_reverse_iterator crend() const noexcept; // capacity [[nodiscard]] constexpr bool empty() const noexcept; constexpr size_type size() const noexcept; constexpr size_type max_size() const noexcept; // element access constexpr reference operator[](size_type n); constexpr const_reference operator[](size_type n) const; constexpr reference at(size_type n); constexpr const_reference at(size_type n) const; constexpr reference front(); constexpr const_reference front() const; constexpr reference back(); constexpr const_reference back() const; constexpr T * data() noexcept; constexpr const T * data() const noexcept; }; template<class T, class... U> array(T, U...) -> array<T, 1 + sizeof...(U)>; }