std:: forward_list
|
헤더 파일에 정의됨
<forward_list>
|
||
|
template
<
class
T,
|
(1) | (C++11부터) |
|
namespace
pmr
{
template
<
class
T
>
|
(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
객체를 생성하고 사용하는 것이 가능합니다.
그러나
|
(C++26부터) |
목차 |
템플릿 매개변수
| T | - |
요소의 타입.
|
||||||||||||
| 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) |
|
|
(C++23)
|
컨테이너에 값들의 범위를 할당합니다
(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) |
|
|
(C++23)
|
요소 뒤에 요소들의 범위를 삽입합니다
(public member function) |
|
요소 다음의 요소를 삭제합니다
(public member function) |
|
|
시작 부분에 요소를 삽입합니다
(public member function) |
|
|
시작 부분에 제자리에서 요소를 생성합니다
(public member function) |
|
|
(C++23)
|
시작 부분에 요소 범위를 추가합니다
(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
의 값을 사전식으로 비교합니다
(함수 템플릿) |
|
(C++11)
|
std::swap
알고리즘을 특수화합니다
(함수 템플릿) |
|
특정 조건을 만족하는 모든 요소를 삭제합니다
(함수 템플릿) |
추론 가이드 |
(C++17부터) |
참고 사항
| 기능 테스트 매크로 | 값 | 표준 | 기능 |
|---|---|---|---|
__cpp_lib_containers_ranges
|
202202L
|
(C++23) | 컨테이너를 위한 범위 생성 및 삽입 |
__cpp_lib_constexpr_forward_list
|
202502L
|
(C++26) |
constexpr
std::forward_list
|
예제
|
이 섹션은 불완전합니다
이유: 예시가 없음 |
참고 항목
|
이중 연결 리스트
(클래스 템플릿) |