728x90
반응형
배열을 선언하는 방법
C++에서 배열을 선언할 때 C 스타일 배열을 사용하는 방법과 C++ 표준 라이브러리의 std::array를 사용하는 방법이 있다.
C 스타일로 배열을 선언하는 방법은 아래 코드와 같다.
int arr[10];
int[] arr = new arr[10];
C++ 표준 라이브러리를 사용하여 배열을 선언하는 방법은 아래 코드와 같다.
#include <array>
std::array<int, 10> arr;
이때 std::array는 array 헤더파일에 정의되어 있기 때문에 #include <array>를 꼭 해줘야 한다.
초기화하는 방법은 C 스타일 배열과 동일하다.
다차원 배열 선언
std::array를 사용한 2차원 배열의 경우 아래 코드와 같이 선언이 가능하다.
array<array<int, 5>, 10> arr = {0};
array class method
array class에는 다양한 메서드들이 정의되어 있어서 이를 유용하게 사용할 수 있다.
반복자 반환 메서드
iterator begin() noexcept;
// 배열의 첫번째 원소를 가리키는 반복자 반환
iterator end() noexcept;
// 배열의 마지막 원소의 다음을 가리키는 반복자 반환
reverse_iterator rbegin() noexcept;
// 배열을 역으로 했을 때, 그 첫번째 원소를 가리키는 역방향 반복자 반환
reverse_iterator rend() noexcept;
// 배열을 역으로 했을 때, 그 마지막 원소의 다음을 가리키는 역방향 반복자 반환
array 반환 메서드
reference operator[](size_type n);
// 배열의 n번째 원소를 반환
reference operator at(size_type n);
// 배열의 n번째 원소를 반환
reference front();
// 배열의 첫번째 원소를 반환
reference back();
// 배열의 마지막 원소를 반호나
value_type* data() nocexcept;
// 배열을 포인터 타입으로 반환
이때 at()은 [] 연산자와 같은 기능을 수행하지만 boundary check를 하여 범위를 벗어나면 std::out_of_range 예외를 던진다.
또한 경계검사 작업을 실행하기 때문에 []보다 살짝 느릴 수 있다.
그 외 자주 사용하는 메서드
constexpr size_type size() noexcept;
// 배열의 크기를 반환
constexpr bool empty() noexcept;
// 배열이 비어있는지 여부를 반환
void fill(const value_type& val);
// 배열의 모든 원소를 val로 변경
void swap(array& arr) noexcept;
// 배열의 모든 원소를 배열 arr과 교환
728x90
반응형
'C++ > C++ 문법' 카테고리의 다른 글
[C++] 템플릿 매개변수, 비타입 템플릿 매개변수 (NonType Template Parameter) (0) | 2024.10.05 |
---|---|
[C++] 템플릿 (Template), 함수 템플릿, 클래스 템플릿, 템플릿 특수화 (0) | 2024.10.05 |
[C++] bool 자료형 (0) | 2024.09.30 |
[C++] 단항 연산자 오버로딩 (전위, 후위 연산자 오버로딩) (0) | 2024.09.26 |
[C++] friend, friend 함수 (0) | 2024.09.26 |