더북(TheBook)

이번 연습 문제에서 살펴본 다양한 반복자 사용 방법은 전체 데이터셋에서 특정 데이터에 접근할 때 매우 유용하게 사용할 수 있습니다.

std::array가 C 스타일 배열의 래퍼인 것처럼, std::forward_list는 단일 연결 리스트(singly-linked list)를 구현해 놓은 래퍼일 뿐입니다. std::forward_list는 성능이나 메모리를 크게 낭비하지 않으면서 간단하고 에러를 유발하지 않는 인터페이스를 제공합니다.

벡터에서는 특정 원소에 즉각적으로 접근할 수 있으므로 벡터 반복자의 덧셈과 뺄셈 연산은 O(1)입니다. 반면에 std::forward_list는 연속적인 순회를 통해서만 특정 원소에 접근할 수 있습니다. 그러므로 std::forward_list 반복자의 덧셈 연산 시간 복잡도는 O(n)이고, 여기서 n은 순회할 횟수를 나타냅니다.

다음 연습 문제에서는 std::forward_list와 비슷한 방식으로 동작하지만 약간 개선된 형태의 사용자 정의 컨테이너를 만들어보겠습니다. std::forward_list에서 제공하는 많은 함수를 비슷하게 구현할 것입니다. 이러한 연습을 통해 해당 기능이 어떻게 작동하는지 이해하는 데 도움이 될 것입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.