hyoomi 2021. 5. 17. 12:34

배열의 단점

1. 메모리 할당과 해제를 수동으로 처리해야 한다.
2. [ ] 연산자에서 배열 크기보다 큰 원소를 참조하는 것을 검사하지 못한다. -> segmentation fault 발생 가능

3. 깊은 복사가 자동으로 이루어지지 않는다.

* 깊은 복사: 새 사본의 객체 생성됨. 서로 독립적.

* 얕은 복사: 동일한 객체를 참조. 변경사항 공유.

 

std::array

메모리를 자동으로 할당하고 해제한다.

//std::array 배열 선언과 초기화
std::array<int, 5> arr1;
for(int i = 0; i < arr1.size(); i++)
	arr1[i] = i;
    
std::array<int, 3> arr2 = {1, 2, 3};

 

함수에 std::array 객체를 전달할 경우, 자동으로 깊은 복사가 이루어진다.

 

iterator(반복자)를 사용할 수 있다.