std:: flat_multiset
|
헤더 파일에 정의됨
<flat_set>
|
||
|
template
<
class
Key,
|
(C++23부터) | |
플랫 멀티셋은
컨테이너 어댑터
로서, 타입
Key
의 객체들을 정렬된 집합으로 저장하는 연관 컨테이너의 기능을 제공합니다.
std::flat_set
과 달리, 동등한 값을 가진 여러 키가 허용됩니다. 정렬은 키 비교 함수
Compare
를 사용하여 수행됩니다.
클래스 템플릿
flat_multiset
은
KeyContainer
타입의 객체로 전달된 기반 정렬 컨테이너에 대한 래퍼 역할을 수행합니다.
표준 라이브러리가 Compare 요구 사항을 사용하는 모든 곳에서, 유일성은 동등 관계를 사용하여 결정됩니다. 비공식적으로, 두 객체 a 와 b 는 어느 것도 다른 것보다 작지 않을 경우 동등한 것으로 간주됩니다: ! comp ( a, b ) && ! comp ( b, a ) .
std::flat_multiset
는
Container
,
ReversibleContainer
,
optional container requirements
의 요구사항과
AssociativeContainer
의 모든 요구사항(로그 시간 검색 복잡도 포함)을 만족합니다. 단, 다음 예외가 적용됩니다:
- 노드와 관련된 요구 사항은 적용되지 않으며,
- 반복자 무효화 요구 사항이 다르며,
- 삽입 및 삭제 연산의 복잡도는 선형입니다.
플랫 멀티셋은 동일한 키를 사용하는 대부분의 AssociativeContainer 연산들을 지원합니다.
std::flat_multiset
의 모든 멤버 함수는
constexpr
입니다: 상수 표현식 평가에서
std::flat_multiset
객체를 생성하고 사용하는 것이 가능합니다.
그러나
|
(C++26부터) |
목차 |
반복자 무효화
| 이 섹션은 불완전합니다 |
템플릿 매개변수
| Key | - |
저장되는 원소의 타입.
Key
가
KeyContainer::value_type
과 동일한 타입이 아닐 경우 프로그램은 ill-formed입니다.
|
| Compare | - | 엄격한 약순서(strict weak ordering)를 제공하는 Compare 타입. |
| KeyContainer | - |
원소를 저장하는 기반
SequenceContainer
의 타입. 이러한 컨테이너의 반복자는
LegacyRandomAccessIterator
를 만족하거나
random_access_iterator
를 모델링해야 합니다.
표준 컨테이너 std::vector 와 std::deque 는 이러한 요구사항을 충족합니다. |
멤버 타입
| 타입 | 정의 |
container_type
|
Key
Container
|
key_type
|
Key
|
value_type
|
Key
|
key_compare
|
Compare
|
value_compare
|
Compare
|
reference
|
value_type & |
const_reference
|
const value_type & |
size_type
|
typename KeyContainer :: size_type |
difference_type
|
typename KeyContainer :: difference_type |
iterator
|
구현 정의
LegacyRandomAccessIterator
,
ConstexprIterator
(C++26부터)
이며
random_access_iterator
를 만족하고
value_type
을 가리킴
|
const_iterator
|
구현 정의
LegacyRandomAccessIterator
,
ConstexprIterator
(C++26부터)
이며
random_access_iterator
를 만족하고
const
value_type
을 가리킴
|
reverse_iterator
|
std:: reverse_iterator < iterator > |
const_reverse_iterator
|
std:: reverse_iterator < const_iterator > |
멤버 객체
| 멤버 | 설명 |
container_type
c
(private)
|
적응된 컨테이너
( 설명 전용 멤버 객체* ) |
key_compare
compare
(private)
|
비교 함수 객체
( 설명 전용 멤버 객체* ) |
멤버 함수
flat_multiset
을 생성합니다
(public member function) |
|
|
(destructor)
(implicitly declared)
|
컨테이너 어댑터의 모든 요소를 파괴합니다
(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) |
|
|
특정 키와 일치하는 요소들의 범위를 반환합니다
(public member function) |
|
관찰자 |
|
|
키를 비교하는 함수를 반환합니다
(public member function) |
|
value_type
타입의 객체에서 키를 비교하는 함수를 반환합니다
(public member function) |
|
비멤버 함수
|
(C++23)
|
두
flat_multiset
의 값을 사전식으로 비교
(함수 템플릿) |
|
(C++23)
|
std::swap
알고리즘을 특수화
(함수 템플릿) |
|
(C++23)
|
특정 조건을 만족하는 모든 요소를 삭제
(함수 템플릿) |
헬퍼 클래스
|
std::uses_allocator
타입 특성의 특수화
(클래스 템플릿 특수화) |
태그
|
범위의 요소들이 정렬되어 있음을 나타냄 (유일성은 요구되지 않음)
(tag) |
추론 가이드
참고 사항
멤버 타입
iterator
와
const_iterator
는 동일한 타입의 별칭(alias)일 수 있습니다. 이는 두 타입을 매개변수 타입으로 사용하는 함수 오버로드 쌍을 정의하는 것이
One Definition Rule
을 위반할 수 있음을 의미합니다.
iterator
는
const_iterator
로 변환 가능하므로, 대신
const_iterator
를 매개변수 타입으로 하는 단일 함수를 사용하면 됩니다.
| 기능 테스트 매크로 | 값 | 표준 | 기능 |
|---|---|---|---|
__cpp_lib_flat_set
|
202207L
|
(C++23) |
std::flat_set
및
std::flat_multiset
|
__cpp_lib_constexpr_flat_set
|
202502L
|
(C++26) |
constexpr
std::flat_multiset
|
예제
|
이 섹션은 불완전합니다
이유: 예제가 없음 |
참고 항목
|
(C++23)
|
컨테이너를 적응시켜 고유 키의 컬렉션을 제공하며, 키로 정렬됨
(클래스 템플릿) |
|
키의 컬렉션으로, 키로 정렬됨
(클래스 템플릿) |
|
|
(C++11)
|
키의 컬렉션으로, 키로 해시됨
(클래스 템플릿) |