Namespaces
Variants

deduction guides for std::unordered_multiset

From cppreference.net

Definido en el encabezado <unordered_set>
template <

class InputIt,
class Hash = std:: hash < typename std:: iterator_traits < InputIt > :: value_type > ,
class Pred = std:: equal_to < typename std:: iterator_traits < InputIt > :: value_type > ,
class Alloc = std:: allocator < typename std:: iterator_traits < InputIt > :: value_type > >
unordered_multiset ( InputIt, InputIt,
typename /* ver abajo */ :: size_type = /* ver abajo */ ,
Hash = Hash ( ) , Pred = Pred ( ) , Alloc = Alloc ( ) )
- > unordered_multiset < typename std:: iterator_traits < InputIt > :: value_type ,

Hash, Pred, Alloc > ;
(1) (desde C++17)
template < class T,

class Hash = std:: hash < T > ,
class Pred = std:: equal_to < T > ,
class Alloc = std:: allocator < T > >
unordered_multiset ( std:: initializer_list < T > ,
typename /* ver abajo */ :: size_type = /* ver abajo */ ,
Hash = Hash ( ) , Pred = Pred ( ) , Alloc = Alloc ( ) )

- > unordered_multiset < T, Hash, Pred, Alloc > ;
(2) (desde C++17)
template < class InputIt, class Alloc >

unordered_multiset ( InputIt, InputIt, typename /* ver abajo */ :: size_type , Alloc )
- > unordered_multiset < typename std:: iterator_traits < InputIt > :: value_type ,
std:: hash < typename std:: iterator_traits < InputIt > :: value_type > ,
std:: equal_to < typename std:: iterator_traits < InputIt > :: value_type > ,

Alloc > ;
(3) (desde C++17)
template < class InputIt, class Hash, class Alloc >

unordered_multiset ( InputIt, InputIt, typename /* ver abajo */ :: size_type , Hash, Alloc )
- > unordered_multiset < typename std:: iterator_traits < InputIt > :: value_type , Hash,
std:: equal_to < typename std:: iterator_traits < InputIt > :: value_type > ,

Alloc > ;
(4) (desde C++17)
template < class T, class Alloc >

unordered_multiset ( std:: initializer_list < T > , typename /* ver más abajo */ :: size_type , Alloc )

- > unordered_multiset < T, std:: hash < T > , std:: equal_to < T > , Alloc > ;
(5) (desde C++17)
template < class T, class Hash, class Alloc >

unordered_multiset ( std:: initializer_list < T > , typename /* ver más abajo */ :: size_type ,
Hash, Alloc )

- > unordered_multiset < T, Hash, std:: equal_to < T > , Alloc > ;
(6) (desde C++17)
template < ranges:: input_range R,

class Hash = std:: hash < ranges:: range_value_t < R >> ,
class Pred = std:: equal_to < ranges:: range_value_t < R >> ,
class Alloc = std:: allocator < ranges:: range_value_t < R >> >
unordered_multiset ( std:: from_range_t , R && ,
typename /* ver más abajo */ :: size_type = /* ver más abajo */ ,
Hash = Hash ( ) , Pred = Pred ( ) , Alloc = Alloc ( ) )

- > unordered_multiset < ranges:: range_value_t < R > , Hash, Pred, Alloc > ;
(7) (desde C++23)
template < ranges:: input_range R, class Alloc >

unordered_multiset ( std:: from_range_t , R && ,
typename /* ver más abajo */ :: size_type , Alloc )
- > unordered_multiset < ranges:: range_value_t < R > , hash < ranges:: range_value_t < R >> ,

std:: equal_to < ranges:: range_value_t < R >> , Alloc > ;
(8) (desde C++23)
template < ranges:: input_range R, class Alloc >

unordered_multiset ( std:: from_range_t , R && , Alloc )
- > unordered_multiset < ranges:: range_value_t < R > , hash < ranges:: range_value_t < R >> ,

std:: equal_to < ranges:: range_value_t < R >> , Alloc > ;
(9) (desde C++23)
template < ranges:: input_range R, class Hash, class Alloc >

unordered_multiset ( std:: from_range_t , R && ,
typename /* ver más abajo */ :: size_type , Hash, Alloc )
- > unordered_multiset < ranges:: range_value_t < R > , Hash,

std:: equal_to < ranges:: range_value_t < R >> , Alloc > ;
(10) (desde C++23)
1-6) Estas guías de deducción se proporcionan para unordered_multiset para permitir la deducción desde un rango de iteradores (sobrecargas (1,3,4) ) y std::initializer_list (sobrecargas (2,5,6) ). Esta sobrecarga participa en la resolución de sobrecarga solo si InputIt satisface LegacyInputIterator , Alloc satisface Allocator , ni Hash ni Pred satisfacen Allocator , Hash no es un tipo integral.
7-10) Estas guías de deducción se proporcionan para unordered_multiset para permitir la deducción desde una etiqueta std::from_range_t y un input_range .

Nota: el grado en que la biblioteca determina que un tipo no satisface LegacyInputIterator no está especificado, excepto que como mínimo los tipos integrales no califican como iteradores de entrada. Del mismo modo, el grado en que determina que un tipo no satisface Allocator no está especificado, excepto que como mínimo el tipo miembro Alloc::value_type debe existir y la expresión std:: declval < Alloc & > ( ) . allocate ( std:: size_t { } ) debe estar bien formada cuando se trata como un operando no evaluado.

El size_type tipo de parámetro en estas guías se refiere al size_type tipo miembro del tipo deducido por la guía de deducción.

Notas

Macro de prueba de características Valor Std Característica
__cpp_lib_containers_ranges 202202L (C++23) Construcción e inserción compatibles con rangos; sobrecargas (7-10)

Ejemplo

#include <unordered_set>
int main()
{
    // guía #2 deduce std::unordered_multiset<int>
    std::unordered_multiset s = {1, 2, 3, 4};
    // guía #1 deduce std::unordered_multiset<int>
    std::unordered_multiset s2(s.begin(), s.end());
}