Share via


unordered_multimap::unordered_multimap

Construye un objeto contenedor.

unordered_multimap(
    const unordered_multimap& Right
);
explicit unordered_multimap(
    size_type Bucket_count = N0,
    const Hash& Hash = Hash(),
    const Comp& Comp = Pred(),
    const Allocator& Al = Alloc()
);
unordered_multimap(
    unordered_multimap&& Right
);
unordered_multimap(
    initializer_list<Type> IList
);
unordered_multimap(
    initializer_list< Type > IList,
    size_type Bucket_count
);
unordered_multimap(
    initializer_list< Type > IList,
    size_type Bucket_count, 
    const Hash& Hash
);
unordered_multimap(
    initializer_list< Type > IList,
    size_type Bucket_count, 
    const Hash& Hash,
    const Key& Key
);
unordered_multimap(
    initializer_list<Type> IList,
    size_type Bucket_count, 
    const Hash& Hash,
    const Key& Key, 
    const Allocator& Al
);
template<class InputIterator>
    unordered_multimap(
        InputIterator first, 
        InputIterator last,
        size_type Bucket_count = N0,
        const Hash& Hash = Hash(),
        const Comp& Comp = Pred(),
        const Allocator& Al = Alloc()
    );

Parámetros

Parámetro

Descripción

InputIterator

Tipo de iterador.

Al

Objeto de asignador que se va a almacenar.

Comp

Objeto de función de comparación que se va a almacenar.

Hash

Objeto de función hash que se va a almacenar.

Bucket_count

Número mínimo de depósitos.

Right

Contenedor que se va a copiar.

IList

initializer_list de la que se van a copiar los elementos.

Comentarios

El primer constructor especifica una copia de la secuencia controlada por Right. El segundo constructor especifica una secuencia controlada vacía. El tercer constructor especifica una copia de la secuencia moviendo Right. Los constructores cuarto, quinto, sexto, séptimo y octavo utilizan una initializer_list para los miembros. El noveno constructor inserta la secuencia de valores de elemento [First, Last).

Todos los constructores también inicializan varios valores almacenados. Para el constructor de copias, los valores se obtienen de Right. De lo contrario:

El número mínimo de depósitos es el argumento Bucket_count, si está presente; de lo contrario, es un valor predeterminado descrito aquí como el valor N0 definido por la implementación.

El objeto de función hash es el argumento Hash, si está presente; de lo contrario, es Hash().

El objeto de función de comparación es el argumento Comp, si está presente; de lo contrario, es Pred().

El objeto de asignador es el argumento Al, si está presente; de lo contrario, es Alloc().

Ejemplo

// std__unordered_map__unordered_multimap_construct.cpp 
// compile with: /EHsc 
#include <unordered_map> 
#include <iostream> 

using namespace std;

using  Mymap = unordered_multimap<char, int> ;
int main()
{
    Mymap c1;

    c1.insert(Mymap::value_type('a', 1));
    c1.insert(Mymap::value_type('b', 2));
    c1.insert(Mymap::value_type('c', 3));

    // display contents " [c 3] [b 2] [a 1]" 
    for (const auto& c : c1) {
        cout << " [" << c.first << ", " << c.second << "]";
    }
    cout << endl;


    Mymap c2(8,
        hash<char>(),
        equal_to<char>(),
        allocator<pair<const char, int> >());

    c2.insert(Mymap::value_type('d', 4));
    c2.insert(Mymap::value_type('e', 5));
    c2.insert(Mymap::value_type('f', 6));

    // display contents " [f 6] [e 5] [d 4]" 
    for (const auto& c : c2) {
        cout << " [" << c.first << ", " << c.second << "]";
    }
    cout << endl;

    Mymap c3(c1.begin(),
        c1.end(),
        8,
        hash<char>(),
        equal_to<char>(),
        allocator<pair<const char, int> >());

    // display contents " [c 3] [b 2] [a 1]" 
    for (const auto& c : c3) {
        cout << " [" << c.first << ", " << c.second << "]";
    }
    cout << endl;

    Mymap c4(move(c3));

    // display contents " [c 3] [b 2] [a 1]" 
    for (const auto& c : c4) {
        cout << " [" << c.first << ", " << c.second << "]";
    }
    cout << endl;

    // Construct with an initializer_list
    unordered_multimap<int, char> c5({ { 5, 'g' }, { 6, 'h' }, { 7, 'i' }, { 8, 'j' } });
    for (const auto& c : c5) {
        cout << " [" << c.first << ", " << c.second << "]";
    }
    cout << endl;

    // Initializer_list plus size
    unordered_multimap<int, char> c6({ { 5, 'g' }, { 6, 'h' }, { 7, 'i' }, { 8, 'j' } }, 4);
    for (const auto& c : c1) {
        cout << " [" << c.first << ", " << c.second << "]";
    }
    cout << endl;

    // Initializer_list plus size and hash
    unordered_multimap<int, char, tr1::hash<char>> c7(
        { { 5, 'g' }, { 6, 'h' }, { 7, 'i' }, { 8, 'j' } },
        4,
        tr1::hash<char>()
    );

    for (const auto& c : c1) {
        cout << " [" << c.first << ", " << c.second << "]";
    }
    cout << endl;

    // Initializer_list plus size, hash, and key_equal
    unordered_multimap<int, char, tr1::hash<char>, equal_to<char>> c8(
        { { 5, 'g' }, { 6, 'h' }, { 7, 'i' }, { 8, 'j' } },
        4,
        tr1::hash<char>(),
        equal_to<char>()
    );

    for (const auto& c : c1) {
        cout << " [" << c.first << ", " << c.second << "]";
    }
    cout << endl;

    // Initializer_list plus size, hash, key_equal, and allocator
    unordered_multimap<int, char, tr1::hash<char>, equal_to<char>> c9(
        { { 5, 'g' }, { 6, 'h' }, { 7, 'i' }, { 8, 'j' } },
        4,
        tr1::hash<char>(),
        equal_to<char>(),
        allocator<pair<const char, int> >()
    );

    for (const auto& c : c1) {
        cout << " [" << c.first << ", " << c.second << "]";
    }
    cout << endl;
}
  

Requisitos

Encabezado: <unordered_map>

Espacio de nombres: std

Vea también

Referencia

<unordered_map>

unordered_multimap (Clase)

Otros recursos

miembros de <unordered_map>