[C++] STL - 리스트(List)
리스트(List)란?
-
시퀀스 컨테이너 (sequence container)의 일종이므로 순서를 유지하는 구조
-
노드 기반 컨테이너
-
이중 연결 리스트(doubly linked list)
-
vector, deque과는 다르게 멤버 함수 에서
정렬(sort, merge)
,이어붙이기(splice)
가 있습니다. -
원소를 탐색할때,
임의접근 반복자
(at()
,[]
) 는 불가능하고,양방향 반복자
(++
,--
) 를 이용해서 탐색 -
멤버 함수를 이용해서 list 양 끝에서 삽입, 삭제가 가능
-
멤버 함수를 통해서 노드 중간에서도 삽입, 삭제가 가능
2. 선언
- 헤더파일
#include <list>
- list 선언
list<[Data Type] > [변수 이름];
list<int> lt1;
list<string> lt2;
3. 리스트 멤버 함수
front
맨 앞의 원소를 반환 ,참조
li.front()
back
맨 뒤의 원소를 반환, 참조
li.back()
begin
맨 앞의 원소를 가리키는 iterator를 반환
li.begin()
end
맨 마지막의 다음 원소를 가리키는 iterator 반환
li.end()
rbegin
뒤에서부터 순차적으로 접근할 때 사용
뒤집었을때 첫번째
li.rbegin()
rend
뒤에서부터 순차적으로 접근할때 사용
뒤집었을때 마지막
li.rend()
push_back
꼬리로 원소 삽입
li.push_back(k)
push_front
머리로 원소 삽입
li.push_front(k)
pop_back
맨 마지막 원소 제거
li.pop_back()
pop_front
맨 앞 원소 제거
li.pop_front()
insert
iter
가 가리키는 위치에 원소 삽입
삽입한 원소를 가리키는 iterator 반환
삽입하면 나머지들은 뒤로 밀림 (왼쪽에 삽입된다는 뜻)
li.insert(iter,k)
erase
iter
가 가리키는 원소를 삭제
삭제한 원소의 다음 원소를 가리키는 iterator 반환
li.erase(iter)
size
원소의 개수 반환
li.size()
remove
k와 같은 원소를 모두 제거
li.remove(k)
remove_if
단항 조건자 predicate
에 해당하는
원소를 모두 제거
li.remove_if(predicate)
reverse
원소들의 순차열을 뒤집음
li.reverse()
sort
모든 원소를 오름차순(default)으로 정렬
파라미터로 정렬 기준 받아서 그 기준으로 정렬
(linked list setSortRule
이랑 똑같음)
li.sort()
swap
li1
과 li2
를 바꿈
li2.swap(li1)
splice
li2
에서 iter2
가 가리키는 곳에
li1
의 모든 원소를 잘라 붙임
li2.splice(iter2,li1)
li2.splice(iter2,li1,iter1)
unique
인접한 원소가 같으면 유일하게 만듬 (중복 다 삭제)
li.unique()
merge
li1
를 li2
내부로 합병 정렬
기준은 오름차순
두번째 파라미터로 정렬 기준 받을 수 있음
li2.merge(li1)
💡 참고 포스팅
C++ STL - linked list
[C++] list container 정리 및 사용법
Author And Source
이 문제에 관하여([C++] STL - 리스트(List)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@youhyeoneee/C-STL-리스트list저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)