- 고정 길이인 배열에 비해 길이가 가변적이다.
- std::vector와 달리 데이터의 중간 삽입, 중간 삭제 속도가 빠르다.
- 데이터 중간 삽입, 삭제시 요소 개수에 상관없이 동일한 상수시간이 소요된다.(상수 시간 복잡도의 수행 성능 보장)
- list의 순회 속도는 O(n), 즉 요소 개수가 많을 수록 순회 속도는 느리다.
- 각 노드는 앞쪽, 뒤쪽 노드와 연결된 이중 연결 리스트다.(반대는 std::forward_list로써, 단일 연결 리스트다)
- 노드 기반이므로 []나 at()을 지원하지 않는다.
※ std::list를 사용해야 하는 경우
분 류 | 멤버 함수 | 설 명 |
Iterators | begin | 첫 번째 원소를 가리키는 반복자를 리턴한다. |
cbegin | 첫 번째 원소를 가리키는 상수 반복자를 리턴한다. | |
end | 마지막 원소를 가리키는 반복자를 리턴한다. | |
cend | 마지막 원소를 가리키는 상수 반복자를 리턴한다. | |
rbegin | 역 순차열의 첫 번째 원소를 가리키는 반복자를 리턴한다. | |
crbegin | 역 순차열의 첫 번째 원소를 가리키는 상수 반복자를 리턴한다. | |
rend | 역 순차열의 마지막 원소를 가리키는 반복자를 리턴한다. | |
crend | 역 순차열의 마지막 원소를 가리키는 상수 반복자를 리턴한다. | |
Element access | at | 제공 안 함 |
operator[] | 제공 안 함 | |
front | 첫 번째 원소의 참조를 리턴한다. | |
back | 마지막 원소의 참조를 리턴한다. | |
Capacity | empty | 원소 존재 유무를 체크한다. 아무것도 없으면 true, 있으면 false를 리턴한다. |
size | 원소의 개수를 리턴한다. | |
max_size | 담을 수 있는 원소의 최대 개수를 리턴한다. | |
resize | list의 크기를 변경하고 default 값이나 임의 값으로 초기화한다. | |
capacity | 제공 안 함 | |
reserve | 제공 안 함 | |
shrink_to_fit | 제공 안 함 | |
Modifiers | clear | list의 모든 원소를 제거한다. |
assign | 기존 원소들은 모두 제거 후, 임의 값으로 n개의 원소를 할당한다. | |
insert | 임의 위치에 임의 값을 삽입한다. | |
emplace | 원소 삽입시 컨테이너 내부에서 생성 후 임의 위치에 임의 값을 삽입한다. | |
emplace_hint | 제공 안 함 | |
erase | 임의 위치의 원소나 지정 범위의 원소를 삭제한다. | |
push_front | list의 처음에 원소를 추가한다. | |
emplace_front | 원소 삽입시 컨테이너 내부에서 생성 후 컨테이너의 처음에 원소를 추가한다. | |
pop_front | list의 처음 원소를 제거한다. | |
push_back | list의 끝에 원소를 추가한다. | |
emplace_back | 원소 삽입시 컨테이너 내부에서 생성 후 컨테이너의 끝에 원소를 추가한다. | |
pop_back | list의 마지막 원소를 제거한다. | |
swap | list1.swap( list2 )일때 list1과 list2를 swap한다. | |
List operations | merge | list1.merge( list2 )일때 list1에 list2를 정렬하면서 병합한다. |
splice | 2개의 list 중 인자로 주어지는 list의 지정된 원소들을 대상 list로 이동시킨다. | |
remove | 인자로 받은 값으로 받은 값과 같은 값의 원소를 모두 제거한다. | |
remove_if | 함수객체의 조건을 만족하는 원소를 모두 제거한다. | |
reverse | list에 담긴 원소의 순서를 역순으로 바꾼다. | |
unique | list에 담긴 원소 중 연속적으로 중복된 값이 배치된 원소를 제거한다. | |
sort | list에 담긴 원소를 정렬한다. 예 : list.sort( std::greater<int>() ) | |
Lookup | count | 제공 안 함 |
find | 제공 안 함 | |
lower_bound | 제공 안 함 | |
upper_bound | 제공 안 함 | |
equal_range | 제공 안 함 | |
Observers | key_comp | 제공 안 함 |
value_comp | 제공 안 함 | |
hash_function | 제공 안 함 | |
key_eq | 제공 안 함 | |
Allocator | get_allocator | list의 allocator 객체를 반환한다. |
[C++ STL] std::set 개요 (0) | 2022.02.25 |
---|---|
[C++ STL] std::forward_list 개요 (0) | 2022.02.25 |
[C++ STL] deque (0) | 2022.02.25 |
[C++ STL] map (0) | 2022.02.25 |
[C++ STL] std::vector 주요 멤버 함수 목록 (0) | 2022.02.25 |