
시퀀스 컨테이너 (sequence container)의 일종이므로 순서를 유지하는 구조
노드 기반 컨테이너
이중 연결 리스트(doubly linked list)
vector, deque과는 다르게 멤버 함수 에서 정렬(sort, merge), 이어붙이기(splice) 가 있습니다.
원소를 탐색할때, 임의접근 반복자 ( at(), [] ) 는 불가능하고, 양방향 반복자 ( ++, -- ) 를 이용해서 탐색
멤버 함수를 이용해서 list 양 끝에서 삽입, 삭제가 가능
멤버 함수를 통해서 노드 중간에서도 삽입, 삭제가 가능
#include <list>
list<[Data Type] > [변수 이름];list<int> lt1;
list<string> lt2;
맨 앞의 원소를 반환 ,참조
li.front()
맨 뒤의 원소를 반환, 참조
li.back()
맨 앞의 원소를 가리키는 iterator를 반환
li.begin()
맨 마지막의 다음 원소를 가리키는 iterator 반환
li.end()
뒤에서부터 순차적으로 접근할 때 사용
뒤집었을때 첫번째
li.rbegin()
뒤에서부터 순차적으로 접근할때 사용
뒤집었을때 마지막
li.rend()
꼬리로 원소 삽입
li.push_back(k)
머리로 원소 삽입
li.push_front(k)
맨 마지막 원소 제거
li.pop_back()
맨 앞 원소 제거
li.pop_front()
iter 가 가리키는 위치에 원소 삽입
삽입한 원소를 가리키는 iterator 반환
삽입하면 나머지들은 뒤로 밀림 (왼쪽에 삽입된다는 뜻)
li.insert(iter,k)
iter가 가리키는 원소를 삭제
삭제한 원소의 다음 원소를 가리키는 iterator 반환
li.erase(iter)
원소의 개수 반환
li.size()
k와 같은 원소를 모두 제거
li.remove(k)
단항 조건자 predicate 에 해당하는
원소를 모두 제거
li.remove_if(predicate)
원소들의 순차열을 뒤집음
li.reverse()
모든 원소를 오름차순(default)으로 정렬
파라미터로 정렬 기준 받아서 그 기준으로 정렬
(linked list setSortRule 이랑 똑같음)
li.sort()
li1 과 li2 를 바꿈
li2.swap(li1)
li2에서 iter2가 가리키는 곳에
li1의 모든 원소를 잘라 붙임
li2.splice(iter2,li1)
li2.splice(iter2,li1,iter1)
인접한 원소가 같으면 유일하게 만듬 (중복 다 삭제)
li.unique()
li1 를 li2 내부로 합병 정렬
기준은 오름차순
두번째 파라미터로 정렬 기준 받을 수 있음
li2.merge(li1)