template
<
class
T,
class
Allocator
=
std::
allocator
<
T
>
>
class
forward_list
;
(1)
(C++11부터)
(2)
(C++17부터)
std::forward_list
는 컨테이너 내 어디에서든 요소의 빠른 삽입과 삭제를 지원하는 컨테이너입니다. 빠른 임의 접근은 지원되지 않습니다. 단일 연결 리스트로 구현됩니다.
std::list
와 비교했을 때, 이 컨테이너는 양방향 순회가 필요하지 않은 경우 더 효율적인 공간 사용을 제공합니다.
리스트 내에서 또는 여러 리스트 간에 요소를 추가, 제거 및 이동해도 현재 리스트의 다른 요소를 참조하는 반복자는 무효화되지 않습니다. 그러나 해당 요소가 리스트에서 제거될 때(
erase_after
를 통해) 해당 요소를 참조하는 반복자나 레퍼런스는 무효화됩니다.
std::forward_list
는
Container
요구 사항(
size
멤버 함수와
operator==
의 복잡도가 항상 선형인 점은 제외),
AllocatorAwareContainer
및
SequenceContainer
요구 사항을 충족합니다.
std::forward_list
의 모든 멤버 함수는
constexpr
입니다: 상수 표현식 평가에서
std::forward_list
객체를 생성하고 사용하는 것이 가능합니다.
그러나
std::forward_list
객체는 일반적으로
constexpr
일 수 없습니다. 동적으로 할당된 저장 공간은 동일한 상수 표현식 평가에서 해제되어야 하기 때문입니다.
(C++26부터)
내용
템플릿 매개변수
T
-
요소의 타입.
요소에 부과되는 요구사항은 컨테이너에서 수행되는 실제 연산에 따라 다릅니다. 일반적으로 요소 타입이 완전한 타입이어야 하고
Erasable
요구사항을 충족해야 하지만, 많은 멤버 함수들은 더 엄격한 요구사항을 부과합니다.
(C++17 이전)
요소에 부과되는 요구사항은 컨테이너에서 수행되는 실제 연산에 따라 다릅니다. 일반적으로 요소 타입이
Erasable
요구사항을 충족해야 하지만, 많은 멤버 함수들은 더 엄격한 요구사항을 부과합니다. 할당자가
할당자 완전성 요구사항
을 충족하는 경우, 이 컨테이너(그러나 그 멤버들은 아님)는 불완전한 요소 타입으로 인스턴스화될 수 있습니다.
(C++17 이후)
Allocator
-
메모리를 획득/해제하고 해당 메모리에서 요소를 생성/소멸시키는 데 사용되는 할당자. 이 타입은
Allocator
요구사항을 충족해야 합니다.
동작은 정의되지 않음
(C++20 이전)
프로그램의 형식이 올바르지 않음
(C++20 이후)
(
Allocator::value_type
이
T
와 동일하지 않은 경우).
멤버 유형
멤버 유형
정의
value_type
T
allocator_type
Allocator
size_type
부호 없는 정수형 (보통 std::size_t )
difference_type
부호 있는 정수형 (보통 std::ptrdiff_t )
reference
value_type &
const_reference
const value_type &
pointer
std :: allocator_traits < Allocator >:: pointer
const_pointer
std :: allocator_traits < Allocator >:: const_pointer
iterator
LegacyForwardIterator 및 ConstexprIterator (C++26부터) 로의 value_type
const_iterator
LegacyForwardIterator 및 ConstexprIterator (C++26부터) 로의const value_type
멤버 함수
forward_list
를 생성합니다
(public member function)
forward_list
를 파괴합니다
(public member function)
컨테이너에 값을 할당합니다
(public member function)
컨테이너에 값을 할당합니다
(public member function)
컨테이너에 값들의 범위를 할당합니다
(public member function)
관련 할당자 반환
(public member function)
요소 접근
첫 번째 요소에 접근
(public member function)
반복자
시작점 이전 요소에 대한 반복자를 반환함
(public member function)
시작 부분에 대한 반복자를 반환합니다
(public member function)
끝을 가리키는 반복자를 반환합니다
(public member function)
용량
컨테이너가 비어 있는지 확인합니다
(public member function)
가능한 최대 요소 수를 반환합니다
(public member function)
수정자
내용을 지움
(public member function)
요소 뒤에 요소들을 삽입합니다
(public member function)
요소 뒤에 제자리에서 요소를 생성합니다
(public member function)
요소 뒤에 요소들의 범위를 삽입합니다
(public member function)
요소 다음의 요소를 삭제합니다
(public member function)
시작 부분에 요소를 삽입합니다
(public member function)
시작 부분에 제자리에서 요소를 생성합니다
(public member function)
시작 부분에 요소 범위를 추가합니다
(public member function)
첫 번째 요소를 제거합니다
(public member function)
저장된 요소의 개수를 변경합니다
(public member function)
내용을 교환합니다
(public member function)
연산
두 개의 정렬된 리스트를 병합합니다
(public member function)
다른
forward_list
로부터 요소들을 전송합니다
(public member function)
특정 조건을 만족하는 요소들을 제거합니다
(public member function)
요소들의 순서를 반전시킵니다
(public member function)
연속된 중복 요소를 제거합니다
(public member function)
요소들을 정렬합니다
(public member function)
비멤버 함수
(C++11)
(C++11)
(C++20에서 제거됨)
(C++11)
(C++20에서 제거됨)
(C++11)
(C++20에서 제거됨)
(C++11)
(C++20에서 제거됨)
(C++11)
(C++20에서 제거됨)
(C++20)
두
forward_list
의 값을 사전식으로 비교합니다
(함수 템플릿)
std::swap
알고리즘을 특수화합니다
(함수 템플릿)
특정 조건을 만족하는 모든 요소를 삭제합니다
(함수 템플릿)
참고 사항
예제
참고 항목