자료구조와 알고리즘
1.3 std:array
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(반복자)를 사용할 수 있다.