![]() |
Home | Libraries | People | FAQ | More |
boost::array — 服從 STL 風格的針對常量大小數組的容器包裝
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>&);
array 元素訪問reference operator[](size_type i); const_reference operator[](size_type i) const;
Requires: |
i < N |
返回: |
索引為 i 的元素
|
拋出: |
不拋出異常。 |
reference at(size_type i); const_reference at(size_type i) const;
返回: |
索引為 i 的元素
|
拋出: |
std::range_error if i >= N
|
reference front(); const_reference front() const;
要求: |
N > 0 |
返回: |
第一個元素 |
拋出: |
不拋出異常 |
reference back(); const_reference back() const;
要求: |
N > 0 |
返回: |
最後一個元素 |
拋出: |
不拋出異常 |
const T* data() const;
返回: |
elems |
拋出: |
不拋出異常 |
T* c_array();
返回: |
elems |
拋出: |
不拋出異常 |
array 比較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);
返回: |
!(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);
返回: |
y < x |
template<typename T, std::size_t N> bool operator<=(const array<T, N>& x, const array<T, N>& y);
返回: |
!(y < x) |
template<typename T, std::size_t N> bool operator>=(const array<T, N>& x, const array<T, N>& y);
返回: |
!(x < y) |