æ ååºæ 头 <array>, <(C++11 èµ·)>
æ¥èªcppreference.com
æ¤å¤´æä»¶æ¯å®¹å¨åºçä¸é¨åã
å å« | ||
(C++20) |
ä¸è·¯æ¯è¾è¿ç®ç¬¦æ¯æ | |
(C++11) |
std::initializer_list ç±»æ¨¡æ¿ | |
ç±» | ||
(C++11) |
éæçè¿ç»æ°ç» (类模æ¿) | |
(C++11) |
è·å¾å
ç»å¼ç±»åçå
ç´ æ° (类模æ¿) | |
(C++11) |
è·å¾å
ç»å¼ç±»åçå
ç´ ç±»å (类模æ¿) | |
(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 { // ç±»æ¨¡æ¿ 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); // ç¹åçç®æ³ template<class T, size_t N> constexpr void swap(array<T, N>& x, array<T, N>& y) noexcept(noexcept(x.swap(y))); // array åå»ºå½æ° 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 æ¥å£ 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 { // ç±»å 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 = /* ç±å®ç°å®ä¹ */; using const_iterator = /* ç±å®ç°å®ä¹ */; using reverse_iterator = std::reverse_iterator<iterator>; using const_reverse_iterator = std::reverse_iterator<const_iterator>; // èåç±»åæ æ¾å¼çæé /å¤å¶/鿝 constexpr void fill(const T& u); constexpr void swap(array&) noexcept(is_nothrow_swappable_v<T>); // è¿ä»£å¨ 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; // 容é [[nodiscard]] constexpr bool empty() const noexcept; constexpr size_type size() const noexcept; constexpr size_type max_size() const noexcept; // å ç´ è®¿é® 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)>; }