[c++] 리스트(list) 컨테이너

C++ 표준 라이브러리는 다양한 유형의 컨테이너를 제공합니다. 그 중에서 리스트(list)는 유용하게 사용될 수 있는 컨테이너 중 하나입니다.

리스트(list) 컨테이너란?

리스트는 이중 연결 리스트로 구현된 순차 컨테이너입니다. 이중 연결 리스트는 각 노드에서 이전 노드와 다음 노드를 가리키는 포인터를 가지고 있어서 노드의 삽입, 삭제가 빠르며, 원하는 위치에 쉽게 접근할 수 있습니다.

리스트(list) 컨테이너 사용법

C++ 표준 라이브러리에서 리스트를 사용하려면 list 헤더를 포함해야 합니다.

#include <list>

리스트를 선언하고 초기화하는 방법은 다음과 같습니다.

std::list<int> myList; // 빈 리스트 선언
std::list<int> myList = {1, 2, 3, 4, 5}; // 초기 값을 가진 리스트 선언

리스트에 요소를 추가하려면 push_back()이나 push_front()를 사용합니다.

myList.push_back(6); // 리스트 뒤쪽에 요소 추가
myList.push_front(0); // 리스트 앞쪽에 요소 추가

특정 위치에 요소를 삽입하려면 insert()를 사용합니다.

auto it = myList.begin();
std::advance(it, 3); // 세 번째 위치로 이동
myList.insert(it, 7); // it이 가리키는 위치에 7 삽입

특정 위치의 요소를 삭제하려면 erase()를 사용합니다.

auto it = std::find(myList.begin(), myList.end(), 3); // 값을 찾아서 이터레이터 리턴
myList.erase(it); // 해당 값 삭제

리스트의 첫 요소나 마지막 요소를 삭제하려면 pop_front()pop_back()을 사용합니다.

myList.pop_front(); // 첫 번째 요소 삭제
myList.pop_back(); // 마지막 요소 삭제

리스트를 순회하려면 range-based for 문이나 이터레이터를 사용합니다.

for (const auto& element : myList) {
    std::cout << element << " ";
}

요약

리스트는 자주 삽입, 삭제되는 작업에 유용한 컨테이너로, 이중 연결 리스트로 구현되어 있어 원하는 위치에 쉽게 접근할 수 있습니다. 유연한 수정 작업이 필요한 경우 리스트 컨테이너를 고려해보세요.

더 자세한 내용은 cplusplus.com에서 확인할 수 있습니다.