list컨테이너
노드 기반의 컨테이너로, 원소가 노드 단위로 저장되며 이중 연결 리스트로 구현됨.
list 의 주요 인터페이스
템플릿 형식 | |
template <template T, typename Allocator = allocator<T> > class list |
T는 list컨테이너 원소의 형식 |
생성자
생성자 | |
list lt | lt는 빈 컨테이너 |
list lt(n) | 0원소 n개로 초기화된 컨테이너 |
list lt(n, x) | x원소 n개로 초기화된 컨테이너 |
list lt(lt2) | lt는 lt2 컨테이너의 복사본 (복사 생성자 호출) |
list lt(b,2) | lt는 반복자 구간 [b, e)로 초기화된 원소를 같는다. |
멤버함수
멤버함수 | |
lt.assign(n,x) | lt에 x값으로 n개의 원소를 할당한다 |
lt.assign(b,e) | lt에 반복자 b부터 e까지 시퀀스 구간으로 할당한다. |
lt.back() | lt에 마지막 원소를 참조한다. |
p=lt.begin() | p는 lt의 첫 원소를 가리키는 반복자 |
lt.clear() | lt의 모든 원소를 제거한다. |
lt.empty() | lt가 비어있는지 확인 |
p=lt.end() | p는 lt의 끝을 표시하는 반복자 |
q=lt.erase(p) | lt의 p가 가리키는 원소를 제거하고 q에는 다음 원소를 넣는다. |
q=lt.erase(b,e) | lt의 반복자 b부터 e 까지의 시퀀스 구간을 제거하고 q는 다음 원소를 가리킨다. |
lt.front() | lt의 첫번째 원소를 참조한다. |
q=lt.insert(p,x) | lt에 p가 가리키는 위치에 x를 삽입한다. q는 삽입한 원소를 가리키는 반복자. |
lt.insert(p,n,x) | lt에 p가 가리키는 위치에 x를 n개 삽입한다. |
lt.insert(p,b,e) | lt에 p가 가리키는 위치에 반복자 b부터 e까지의 시퀀스 구간원소를 삽입한다. |
x=lt.max_size() | x는 lt가 담을 수 있는 최대 원소의 개수다.(메모리 크기) |
lt.merge(ltl2) | lt2를 lt로 합병 정렬한다(오름차순: less) |
lt.merge(lt2,pred) | lt2를 lt로 합벙 정렬한다.(pred: 사용자 정의 조건자) |
lt.pop_back() | lt에 마지막 원소를 제거한다. |
lt.pop_front() | lt의 첫 원소를 제거한다. |
lt.push_back(x) | lt에 x를 가장 뒤에 삽입한다. |
lt.push_front(x) | lt의 앞에 x를 삽입한다. |
p=lt.rbegin() | p는 lt의 역 순차열의 첫번째 원소를 가리키는 반복자(reverse begin의 줄임말로 end()와 같다) |
lt.remove(x) | x원소를 모두 제거한다. |
lt.remove_if(pred) | pred(사용자 정의 조건자)가 참인 모든 원소를 제거한다. |
p=lt.rend() | p는 lt의 역 순차열의 마지막 원소를 가리키는 반복자(reverse end의 줄임말로 begin()와 같다) |
lt.resize(n) | lt를 n의 크기로 변경하고 확장되는 공간의 값을 기본값(0)으로 초기화한다. (작아지면 삭제됨) |
lt.resize(n, x) | lt를 n의 크기로 변경하고 확장되는 공간의 값을 x값으로 초기화한다. (작아지면 삭제됨) |
lt.reverse() | lt의 순차열을 뒤집는다. |
lt.size( ) | 원소의 갯수 |
lt.sort() | lt의 모든 원소를 오름차순(less)로 정렬한다. |
lt.sort(pred) | lt의 모든 원소를 pred(사용자 정의 조건자)를 기준으로 정렬한다. pred는 이항 조건자. |
lt.splice(p,lt2) | p가 가리키는 위치에 lt2의 모든 원소를 잘라 붙인다. |
lt.splice(p,lt2, q) | p가 가리키는 위치에 lt2의 q가 가리키는 원소를 잘라 붙인다. |
lt.splice(p,lt2, b e) | p가 가리키는 위치에 lt2의 순차열 [b,e)을 잘라 붙인다. |
lt.swap(ltl2) | lt와 lt2를 swap한다. |
lt.unique() | 인접한 원소의 값이 같다면 유일한 원소의 순차열로 만든다. 띄어있는 중복 원소는 삭제x |
lt.unique(pred) | 인접한 원소가 pred(이항 조건자)의 기준에 맞다면 유일한 원소의 순차열로 만든다. |
연산자
연산자 | |
lt1 == lt2 | lt1과 lt2의 모든 원소가 같은가 (bool 형식) |
lt1 != lt2 | lt1과 lt2의 모든 원소 중 하나라도 다른 원소가 있는가? (bool 형식) |
lt1 < lt2 | lt2가 lt1보다 하나라도 큰 원소가 있는가? (bool 형식) |
lt1 <= lt2 | lt2가 lt1보다 하나라도 같거나 큰 원소가 있는가? (bool 형식) |
lt1 > lt2 | lt1이 lt2보다 하나라도 큰 원소가 있는가? (bool 형식) |
lt1 >= lt2 | lt1이 lt2보다 하나라도 같거나 큰 원소가 있는가? (bool 형식) |
멤버형식
멤버형식 | |
allocator_type | 메모리 관리자 형식 |
const_iterator | const 반복자 형식 |
const_pointer | const value_type *형식 |
const_reference | const value_type& 형식 |
const_reverse_iterator | const 역 반복자 형식 |
difference_type | 두 반복자 차이의 형식 |
iterator | 반복자 형식 |
pointer | value_type* 형식 |
reference | value_type& 형식 |
reverse_iterator | 역 반복자 형식 |
size_type | 첨자(index)나 원소의 개수 등의 형식 |
value_type | 원소의 형식 |
'C++ > STL' 카테고리의 다른 글
[STL] Set 컨테이너 (0) | 2025.03.22 |
---|---|
[STL] 6장 문제풀이 (0) | 2025.03.17 |
[STL] Deque 컨테이너 (0) | 2025.03.15 |
[STL] Vector 컨테이너 (0) | 2025.03.10 |
[STL] 5장 문제풀이 (0) | 2025.03.08 |