반응형
List container란?
List conatiner는 보통 이중 연결 리스트(doubly linked list)로 구현된다. 이중 연결 리스트를 이용하면 메모리 상의 임의의 위치에 원소를 저장하더라도 참조할 수 있게 된다. 왜냐하면 어떤 원소의 위치는 이전 원소와 다음 원소의 링크를 통해 따라서 추적해나갈 수 있기 때문이다.
그로 인해 List는 아래와 같은 장점들이 있다.
- 임의의 위치에 원소 삽입 / 삭제가 가능하다.
- 서로 다른 컨테이너 사이 or 컨테이너 내부에서 원소들간의 이동이 효율적이다.
- 원소들을 앞에서 뒤로 or 뒤에서 앞으로 참조해 나갈 수 있다.
vector, deque conatiner들과 비교했을 때, 리스트는 원소의 삽입 / 삭제 / 원소들간 이동이 효율적이다.
따라서, 정렬 알고리즘 처럼 원소의 이동이 빈번하게 발생하는곳에 적용하면 좋다.
특히, list::sort()함수와, list::splice가 기본적으로 제공되고 있으므로 편리하다.
List container의 멤버 함수
- iterator 관련 멤버 함수
함수명 | 동작 |
begin() | begineeing interator를 반환 |
end() | end iterator를 반환 |
- modifier 멤버 함수
함수명 | 동작 |
push_front(element) | 리스트의 제일 앞에 원소를 추가 |
pop_front() | 리스트의 제일 앞에 원소를 삭제 |
push_back(element) | 리스트의 제일 뒤에 원소를 추가 |
pop_back() | 리스트의 제일 뒤에 원소를 삭제 |
insert(iterator, element) | iterator가 가리키는 위치 앞에 원소를 추가 |
erase(iterator) | iterator가 가리키는 위치의 원소를 삭제 |
- element access 관련 멤버 함수
함수명 | 동작 |
*iterator | iterator가 가리키는 원소에 접근 |
front() | 첫 번째 원소 반환 |
back() | 마지막 원소 반환 |
- Capacity 관련 멤버 함수
함수명 | 동작 |
empty() | 리스트가 비어 있을 경우 true, 아닐 경우 false 리턴 |
size() | 리스트의 원소 개수를 리턴 |
'Development. > C++' 카테고리의 다른 글
[C++] Vector container(std::vector) 개념 및 사용법 정리 (0) | 2020.08.17 |
---|---|
[C++] array container(std::array) 개념 및 사용법 정리 (0) | 2020.07.26 |
[C++] STL(Standard Template Library) 이란? (0) | 2020.07.26 |