list
list 정의 및 특징
- 각 노드가 데이터와 다음 노드의 위치 정보를 가지고 한 줄로 연결되어있는 방식으로 데이터를 저장하는 자료 구조이다. 이름에서 말하듯이 데이터를 담고 있는 노드들이 연결되어 있는데, 노드의 포인터가 다음이나 이전의 노드와의 연결을 담당하게 된다.(그림 참고)
- 원소를 탐색할때, 임의접근 반복자 (at(), []) 는 불가능하고, 양방향 반복자(++,--)를 이용해서 탐색 가능
- 한 줄로 연결되어있고 특정한 원소를 접근하기 위해 해당 원소의 포인터를 가지고 있는 노드에 우선 접근하여야한다. 즉, 임의의 중간 위치에 있는 원소에 바로 접근하는 것이 불가능하다.
멤버 함수
#include <list>
list<int> list;
list.begin() // 첫번째 요소 iteratot를 반환
list.end() // 마지막 요소 다음 iterator를 반환
list.empty() // 리스트가 비어있으면 true 아니면 false를 반환
list.size() // 리스트 원소들의 수를 반환
list.front() // 첫번째 원소를 반환
list.back() // 마지막 원소를 반환
list.push_front(element) // 리스트 제일 앞에 원소 추가
list.pop_front() // 리스트 제일 앞에 원소 삭제
list.push_back(element) // 리스트 제일 뒤에 원소 추가
list.pop_back() // 리스트 제일 뒤에 원소 삭제
list.insert(iterator, element) // iterator가 가리키는 부분에 원소를 추가 -> 기존의 원소는 뒤로 밀림.
earse(iterator) // iterator가 가리키는 부분에 원소를 삭제 -> 형태 2가지인 (범위 또는 위치)
intellisense 더보기
1. list.begin();

- list의 첫번째 요소의 반복자를 반환
2. list.end();

- list의 마지막 요소 그 다음 반복자를 반환
3. list.empty();

- list가 비어있는지 확인
- 비어있면 true, 아니면 false를 bool형으로 반환
4. list.size();

- list에 담긴 요소의 개수를 size_t(unsigned int)형으로 반환
5. list.front();

- list의 첫번째 요소 값을 반환
6. list.back();

- list의 마지막 요소 값을 반환
7. list.push_front(x);

- x를 list의 가장 앞에 삽입
- void 반환
8. list.pop_front();

- list의 가장 앞의 요소를 제거
- void 반환
9. list.push_back(x);

- list의 가장 뒤에 요소를 삽입
- void 반환
10. list.pop_back();

- list의 가장 뒤에 있는 요소를 제거
- void 반환
11. list.erase(first, last);

- first부터 last에 해당하는 요소를 제거
- first와 last는 반복자형 매개변수
- 원래 가르키던 반복자 반환 / 요소들이 제거되면서 나머지 요소들이 빈자리를 채움
참고
'C++ > 자료구조' 카테고리의 다른 글
C++ [자료구조] / # set #STL (0) | 2023.03.27 |
---|---|
C++ [자료구조] / #맵 #map (0) | 2023.03.19 |
C++ [자료구조] / #queue 구조 및 클래스 사용법 (0) | 2023.03.19 |
C++ [자료구조] / #Stack 구조와 클래스 사용법 (0) | 2023.03.12 |
C++ [자료구조] / #Vector의 구조와 클래스 사용법 (0) | 2023.03.12 |