상세 컨텐츠

본문 제목

STL :: array<type, num>

C++/STL

by J2on 2024. 2. 2. 21:45

본문

기본적으로 C에서의 std::array와는 다른 것

#include <array>
array<type, num> arr

이 형태로 사용한다.

 

STL 중 하나로 std::array와 유사한 정적 배열로써 사용이 된다.

#include <iostream>
#include <array>

int main() {
    // std::array 선언 및 초기화
    std::array<int, 5> myArray = {1, 2, 3, 4, 5};

    // 배열 요소에 접근
    std::cout << "첫 번째 요소: " << myArray[0] << std::endl;

    // 배열 크기
    std::cout << "배열 크기: " << myArray.size() << std::endl;

    // 반복자를 사용한 순회
    for (auto it = myArray.begin(); it != myArray.end(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    // 범위 기반 for문을 사용한 순회 (C++11 이후)
    for (const auto& element : myArray) {
        std::cout << element << " ";
    }
    std::cout << std::endl;

    return 0;
}

이런 식으로 size() , begin(), end() 등의 method를 활용할 수 있다.

std::array<int, 5> myArray = {1, 2, 3, 4, 5};

// 요소 변경
myArray[2] = 10;

// 요소 접근
int value = myArray[2];

역시 [] 연산자를 통해 접근과 변경이 가능하다.

 

또한, 정적 배열이기 때문에 크기 변경이 불가능 하다는 점도 동일하다.

 

 

기타 멤버 메소드

data() 메소드를 통해 배열의 첫 번째 요소에 대한 포인터를 저장할 수 있다

int* ptr = myArray.data();

 

 

fill()로 모든 요소를 채우는 것이 가능하다. 

std::array<int, 5> myArray;
myArray.fill(42); // 모든 요소를 42로 채우기

 

 

std::array<int, 5> array1 = {1, 2, 3, 4, 5};
std::array<int, 5> array2 = {1, 2, 3, 4, 5};

if (array1 == array2) {
    std::cout << "두 배열은 같습니다." << std::endl;
}

 

관련글 더보기

댓글 영역