| 202 | // array |
| 203 | template<typename T, size_t N> |
| 204 | class array { |
| 205 | T buff[N]; |
| 206 | public: |
| 207 | T& operator[](const size_t& i) { return buff[i]; } |
| 208 | const T& operator[](const size_t& i) const { return buff[i]; } |
| 209 | |
| 210 | T * data() { return buff; } |
| 211 | T const * data() const { return buff; } |
| 212 | |
| 213 | T * begin() { return buff; } |
| 214 | T const * cbegin() const { return buff; } |
| 215 | }; |
| 216 | // copy_n |
| 217 | template< class InputIt, class Size, class OutputIt> |
| 218 | OutputIt copy_n(InputIt first, Size count, OutputIt result) |