Development./C++

[C++] array container(std::array) 개념 및 사용법 정리

Chuuu_DevCamp:) 2020. 7. 26. 21:21
반응형

Array container란?

고정 길이의 배열을 표현 하기 위한 것입니다. (std::array)

c++ 11에 추가 되었으며, 이전 c++버전에서의 배열의 불편한 점을 개선한 container입니다.

array container를 사용하기 위해서는, header file include가 필요합니다.

#include <array>

Array container 생성자

array container 선언 부분은 아래와 같이 정의 되어 있습니다.

array<typename T, size_t N> class array;

위 정의에 따라, typename T에는 데이터 타입, size_t N에는 인자의 개수를 전달 해야 합니다.
아래 예제를 통해 선언 및 초기화 방법을 확인 할 수 있습니다.

// int형 데이터를 가지고, sise가 3인 array 선언, 초기화
std::array<int, 3> example1 = {1, 2, 3}; 
// double형 데이터를 가지고, size가 3인 array 선언, 따로 초기화 하지 않아 쓰레기값이 들어있다.
std::array<double, 3> example2;
// int형 데이터를 가지고, size가 5인 array 선언. 첫 번째 item만 1로, 나머지는 0으로 초기화
std::array<int, 5> example3 = {1};

Array container 멤버 함수

  • iterator 관련 멤버 함수
함수명 동작
begin() 배열의 첫 번째 원소의 iterator를 리턴한다.
end() 배열의 맨 마지막 다음 원소의 iterator를 리턴한다.
rbegin() 배열을 거꾸로 했을 때 첫 번째 원소의 iterator를 리턴한다.
rend() 배열을 거꾸로 했을 때 맨 마지막 다음 원소의 iterator를 리턴한다.
cbegin() 배열의 첫 번째 원소의 iterator를 const로 리턴한다.
cend() 배열의 맨 마지막 다음 원소의 iterator를 const로 리턴한다.
crbegin() 배열을 거꾸로 했을 때 첫 번째 원소의 iterator를 const로 리턴한다.
crend() 배열을 거꾸로 했을 때 맨 마지막 다음 원소의 iterator를 const로 리턴한다.
  • capacity관련 멤버 함수
함수명 동작
size() 배열의 size를 리턴한다.
max_size() 배열의 최대 사이즈를 리턴한다.(size 함수와 동일한 동작. 왜 이 함수가 있는지 잘 모르겠다.)
empty() 배열이 비어있는지 확인하는 함수 (비어있을 경우 true, 아닐 경우 false 리턴)
  • element access 관련 멤버 함수
함수명 동작
operator[N] N번째 인자를 리턴
at(N) N번째 인자를 리턴
front() 배열의 맨 앞 원소를 리턴
back() 배열의 맨 뒤 원소를 리턴
data() 배열을 포인터 타입으로 리턴. (배열의 첫 번째 주소를 리턴)
  • motifier 멤버 함수
함수명 동작
fill(value) 배열의 인자를 value값으로 변경
swap(arr) 배열 인자를 arr 배열의 인자로 변경
(변경 하려는 배열과 size가 같아야 함)