이 튜토리얼에서는 C++ STL(표준 템플릿 라이브러리)에서 생성자(Constructor)를 활용해 리스트(list) 컨테이너를 생성하는 방법을 자세히 알아봅니다.
리스트(List)는 메모리상에 요소들을 연속적이지 않은(non-contiguous) 방식으로 저장하는 자료구조입니다. 각 노드가 포인터로 연결되는 이중 연결 리스트(doubly linked list) 형태로 구현되어 있기 때문에, 벡터(vector)와 비교했을 때 임의 위치에서의 삽입과 삭제가 훨씬 빠르다는 장점이 있습니다.
C++ 코드 예제
아래 예제에서는 생성자에 초기화 값(요소 개수와 초기값)을 전달하여 리스트를 생성하고, 이를 출력하는 방법을 보여줍니다.
#include <iostream>
#include <list>
using namespace std;
// 리스트 출력 함수
void print_list(list<int> mylist) {
list<int>::iterator it;
// 모든 요소를 순회하며 출력
for (it = mylist.begin(); it != mylist.end(); ++it)
cout << ' ' << *it;
cout << '\n';
}
int main() {
// 생성자를 이용해 리스트 생성: 10개의 요소를 값 100으로 초기화
list<int> myList(10, 100);
print_list(myList);
return 0;
}실행 결과
100 100 100 100 100 100 100 100 100 100
코드 설명
list<int> myList(10, 100); 구문이 핵심입니다. 첫 번째 인자 10은 생성할 요소의 개수를, 두 번째 인자 100은 각 요소를 초기화할 값을 의미합니다. 따라서 값 100을 가진 정수 요소 10개가 담긴 리스트가 한 번에 생성됩니다.
생성자를 활용하면 반복문으로 요소를 하나씩 추가하는 번거로움 없이, 원하는 크기와 초기값을 가진 리스트를 간결하고 효율적으로 만들 수 있습니다. 특히 동일한 값으로 여러 요소를 초기화해야 하는 상황에서 매우 유용합니다.