<array>
컨테이너 클래스 템플릿 배열 및 여러 지원 템플릿을 정의
헤더 : #include <array>
연산자
이름 | 설명 |
operator== | 배열 비교, 같다 |
operator!= | 배열 비교, 같지 않다 |
연산자< | 배열 비교, 보다 작다 |
operator>= | 배열 비교, 크거나 같다 |
연산자> | 배열 비교, 보다 크다 |
operator<= | 배열 비교, 작거나 같다 |
함수
이름 | 설명 |
get | 지정된 배열 요소를 가져온다. |
swap | 한 배열의 내뇽을 다른 배열의 내용과 교환한다. |
get
배열의 지정된 요소에 대한 참조를반환합니다.
형식 |
template <int Index, class T, size_t N> constexpr T& get(array<T, N>& arr) noexcept; template <int Index, class T, size_t N> constexpr const T& get(const array<T, N>& arr) noexcept; template <int Index, class T, size_t N> constexpr T&& get(array<T, N>&& arr) noexcept; |
매개변수
Index : 요소 오프셋
T : 요소의 형식
N : 배열의 요소 수
arr : 선택할 배열
예제1 |
#include <array> #include <iostream> #define N 4 using namespace std; typedef array<int, N> MyArray; int main() { MyArray data{ 0, 1, 2, 3}; for (const auto& e : data) { cout << " " << e; } cout << endl; return 0; } |
예제2 (위 예제를 함수로 구현) |
#include <array> #include <iostream> #define N 4 using namespace std; typedef array<int, N> MyArray; void print(const array<int, N>& arr) { for (const auto& e : arr) { cout << " " << e; } cout << endl; } int main() { MyArray data{ 0, 1, 2, 3}; print(data); return 0; } |
출력 |
0 1 2 3 |
예제3 |
#include <array> #include <iostream> #define N 4 using namespace std; typedef array<int, N> MyArray; int main() { MyArray data{ 0, 1, 2, 3}; cout << " " << get<1>(data); cout << " " << get<3>(data) << endl; return 0; } |
출력 |
1 3 |
swap
멤버가 아닌 템플릿 특수화는 swap 두 배열 객체를 교환합니다.
형식 |
template <class Ty, std::size_t N> void swap(array<Ty, N>& left, array<Ty, N>& right); |
매개 변수
Ty : 요소의 형식
N : 배열의 크기
left : 교환할 첫 번째 배열
right : 교환할 두 번째 배열
사용예 : left.swap(right)
예제 |
#include <array> #include <iostream> #define N 4 using namespace std; typedef std::array<int, N> Myarray; int main() { Myarray data = { 0, 1, 2, 3 }; // begin() : 시퀀스의 시작을 지정, end() : 시퀀스의 긑을 지정 for (Myarray::const_iterator it = data.begin(); it != data.end(); ++it) cout << " " << *it; cout << endl; Myarray data1 = { 4, 5, 6, 7 }; data.swap(data1); for (Myarray::const_iterator it = data.begin(); it != data.end(); ++it) cout << " " << *it; cout << endl; swap(data, data1); for (Myarray::const_iterator it = data.begin(); it != data.end(); ++it) cout << " " << *it; cout << endl; return (0); } |
출력 |
0 1 2 3 4 5 6 7 0 1 2 3 |