Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ 배열 클래스(std::array) 완벽 가이드: 주요 함수와 활용 예제

C++의 배열 클래스(std::array)는 매우 효율적일 뿐만 아니라 자신의 크기까지 스스로 알고 있는 똑똑한 컨테이너입니다. 일반적인 C 스타일 배열과 달리 크기 정보를 함께 관리하므로 더 안전하고 편리하게 사용할 수 있습니다.

배열 연산에 사용되는 주요 함수

  • size() : 배열의 크기, 즉 배열에 저장된 요소의 개수를 반환합니다.
  • max_size() : 배열이 담을 수 있는 최대 요소 개수를 반환합니다.
  • get(), at(), operator[] : 배열 요소에 접근할 때 사용합니다.
  • front() : 배열의 첫 번째(앞쪽) 요소를 반환합니다.
  • back() : 배열의 마지막(뒤쪽) 요소를 반환합니다.
  • empty() : 배열이 비어 있으면 true를, 그렇지 않으면 false를 반환합니다.
  • fill() : 배열 전체를 특정 값으로 채웁니다.
  • swap() : 한 배열의 요소들을 다른 배열과 서로 맞바꿉니다.

아래 예제는 위에서 소개한 모든 연산을 실제로 구현한 코드입니다.

예제 코드

#include<iostream>
#include<array>
using namespace std;

int main() {
    array<int,4>a = {10, 20, 30, 40};
    array<int,4>a1 = {50, 60, 70, 90};
    cout << "배열의 크기는 : ";
    //size() 함수로 배열의 크기 확인
    cout << a.size() << endl;
    //배열이 담을 수 있는 최대 요소 개수
    cout << "배열이 담을 수 있는 최대 요소 개수는 : ";
    cout << a.max_size() << endl;
    //at()을 사용하여 배열 요소 출력
    cout << "at()으로 출력한 배열 요소들 : ";
    for ( int i=0; i<4; i++)
        cout << a.at(i) << " ";
        cout << endl;
    //get()을 사용하여 배열 요소 출력
    cout << "get()으로 출력한 배열 요소들 : ";
    cout << get<0>(a) << " " << get<1>(a) << " "<<endl;
    cout << "operator[]로 출력한 배열 요소들 : ";
    for ( int i=0; i<4; i++)
        cout << a[i] << " ";
        cout << endl;
    //배열의 첫 번째 요소 출력
    cout << "배열의 첫 번째 요소는 : ";
    cout << a.front() << endl;
    //배열의 마지막 요소 출력
    cout << "배열의 마지막 요소는 : ";
    cout << a.back() << endl;
    cout << "swap 전 두 번째 배열의 요소들 : ";
    for (int i=0; i<4; i++)
        cout << a1[i] << " ";
        cout << endl;
    //a1의 값을 a와 맞바꾸기
    a.swap(a1);
    //swap 후 첫 번째와 두 번째 배열 출력
    cout << "swap 후 첫 번째 배열의 요소들 : ";
    for (int i=0; i<4; i++)
        cout << a[i] << " ";
        cout << endl;
        cout << "swap 후 두 번째 배열의 요소들 : ";
    for (int i = 0; i<4; i++)
        cout << a1[i] << " ";
        cout << endl;
    //배열이 비어 있는지 확인
    a1.empty()? cout << "배열이 비어 있습니다":
    cout << "배열이 비어 있지 않습니다";
    cout << endl;
    //배열을 1로 채우기
    a.fill(1);
    //fill 연산 후 배열 내용 출력
    cout << "fill 연산 후 배열의 내용은 : ";
    for ( int i = 0; i<4; i++)
        cout << a[i] << " ";
        return 0;
}

실행 결과

배열의 크기는 : 4
배열이 담을 수 있는 최대 요소 개수는 : 4
at()으로 출력한 배열 요소들 : 10 20 30 40
get()으로 출력한 배열 요소들 : 10 20
operator[]로 출력한 배열 요소들 : 10 20 30 40
배열의 첫 번째 요소는 : 10
배열의 마지막 요소는 : 40
swap 전 두 번째 배열의 요소들 : 50 60 70 90
swap 후 첫 번째 배열의 요소들 : 50 60 70 90
swap 후 두 번째 배열의 요소들 : 10 20 30 40
배열이 비어 있지 않습니다
fill 연산 후 배열의 내용은 : 1 1 1 1