기록공간

std::array 본문

C++

std::array

입코딩 2020. 4. 3. 20:22
반응형

배열 타입은 C언어에서 유래한 것으로 C++에서도 계속 사용하고 있다. C++에서는 std::array라는 새로운 형태의 컨테이너가 있다. std::array는 <array> 헤더 파일에 정의되어 있다. std::array는 C언어 배열을 대체하는 안전한(범위를 벗어난 메모리 작업의 위험이 없는) 배열 타입이다. std::array가 도입되기 전에는 std::vector를 사용해야 했다. std::array는 std::vector와는 다르게 크기가 고정되어 있어 새로 항목을 추가하거나 삭제할 수는 없지만 오버헤드가 적은 장점이 있다.

 

std::array는 기존 C언어 배열에 대한 아주 가벼운 레퍼 클래스로 기존 배열에 비해 몇 가지 장점이 있다. 우선 배열의 크기를 항상 정확히 알 수 있고, 포인터가 자동으로 잘못 타입 캐스팅되는 것도 피할 수 있드며 C++ STL의 iterator를 활용하여 항목을 순회하거나 STL 알고리즘을 이용할 수도 있다. 

 

다음은 array 컨테이너의 사용 예이다.

#include <iostream>
#include <array>
using namespace std;
int main()
{
	array<int, 3> arr = {9, 8, 7};
	cout << "Array size = " << arr.size() << endl;
	cout << "Element 2 = " << arr[1] << endl;
	return 0;
}

배열 크기가 동적으로 바뀌어야 한다면 vector를 사용해야 한다. vector는 새로운 항목을 추가할 때마다 크기가 자동으로 늘어난다.

반응형

'C++' 카테고리의 다른 글

decltype 키워드  (0) 2020.04.03
자동 함수 리턴 타입 (C++14)  (0) 2020.04.03
새로운 함수 정의 문법(C++11)  (0) 2020.04.03
엄격한 열거 타입  (0) 2020.04.03
템플릿(Template)  (0) 2019.07.02
Comments