※ 요약
std::forward_list의 주요 함수 목록이다.
std::forward_list의 경우는 C++11부터 추가된 컨테이너이고, 각 멤버들의 사용법은 다음 게시물부터 올리도록 하겠다.

- C++03

- C++11

 분 류

 멤버 함수

 설 명

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_after

 지정된 위치에 뒤에 값을 삽입한다.

emplace_after

 원소 삽입시 컨테이너 내부에서 생성 후 지정된 위치에 뒤에 값을 삽입한다.

emplace_hint

 제공 안 함

erase_after

 지정된 위치 다음이나 지정된 위치 이후의 지정한 범위의 모든 데이터를 지운다.

push_front

 list의 처음에 원소를 추가한다.

emplace_front

 원소 삽입시 컨테이너 내부에서 생성 후 컨테이너의 처음에 원소를 추가한다.

pop_front

 list의 처음 원소를 제거한다.

push_back

 제공 안 함

emplace_back

 제공 안 함

pop_back

 제공 안 함

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 객체를 반환한다.




'STL - Containers > forward_list' 카테고리의 다른 글

[C++11 STL] std::forward_list 개요  (0) 2015.11.17

 

※ STD::forward_list 요약
std::list가 양방향(double linked list)이라면 std::forward_list는 단방향(single linked list)이다.
단방향 연결 리스트라 양방향인 std::list보다 메모리 사용량이나 처리 속도면에서 조금 유리하다.
double linked list가 필요하다면 std::list를, single linked list로도 충분하다면 std::forward_list를 사용한다.

※ std::forward_list 특징
- single linked list(단일 연결 리스트) 자료구조를 이용하여 만든 시퀀스 컨테이너다.
- 설계 디자인을 std::list에 맞춘다.(STL은 범용성을 지향하므로 다른 컨테이너들도 마찬가지다.)
- 속도와 사이즈, 즉 성능을 최우선으로 설계, 제작되었다.
- 다른 STL 컨테이너에 있는 size 함수를 제공하지 않는다.
- size는 다음과 같이 구한다. -> size_t size = std::distance( list.begin(), list.end() )

※ std::forward_list와 std::list
- std::list는 양방향으로 이동 가능하지만 std::forward_list는 한 방향으로만 이동할 수 있다.
- std::list보다 삽입/삭제 속도가 아주 약간 더 빠르다.
- 양방향인 std::list에 비해 메모리를 적게 사용한다. 각 요소 뿐만이 아닌, 컨테이너 자체 사이즈도 더 작다.
- 삽입과 삭제는 지정한 요소의 다음 요소에 한해서만 가능하다.(단방향이므로 당연하다)
- 구현의 복잡성과 성능 문제 때문에 std::list에서 제공하는 insert와 erase를 제공하지 않는다.

 

※ std::forward_list를 사용해야 하는 경우

- double linked list가 아닌 single linked list로도 충분할때


 

+ Recent posts