본문 바로가기

프로그램언어/C++

c++ 표준 라이브러리 array

<array>

컨테이너 클래스 템플릿 배열 및 여러 지원 템플릿을 정의

 

 

헤더 :  #include <array>

 

연산자

이름 설명
operator== 배열 비교, 같다
operator!= 배열 비교, 같지 않다
연산자< 배열 비교, 보다 작다
operator>= 배열 비교, 크거나 같다
연산자> 배열 비교, 보다 크다
operator<= 배열 비교, 작거나 같다

 

함수

이름 설명
get 지정된 배열 요소를 가져온다.
swap 한 배열의 내뇽을 다른 배열의 내용과 교환한다.

 

get

배열의 지정된 요소에 대한 참조를반환합니다.

형식
template <int Index, class Tsize_t N>
constexpr Tget(array<T, N>& arrnoexcept;

template <int Index, class Tsize_t N>
constexpr const Tget(const array<T, N>& arrnoexcept;

template <int Index, class Tsize_t N>
constexpr T&& get(array<T, N>&& arrnoexcept;

매개변수

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

 

'프로그램언어 > C++' 카테고리의 다른 글

윈도우 프로그램기초예제  (0) 2021.06.08
스레드  (0) 2021.01.14
윈도우 소켓2  (0) 2021.01.13
윈도우 소켓1  (0) 2021.01.12
파일 입출력2  (0) 2021.01.11