Espacios de nombres
Variantes
Acciones

Archivo de encabezado de la biblioteca estándar <unordered_map>

De cppreference.com
< cpp‎ | header
 
 
Archivos de encabezado de la biblioteca estándar
Servicios generales
<any> (C++17)
<bitset>
<bit> (C++20)
<charconv> (C++17)
<expected> (C++23)
<format> (C++20)
<functional>
<optional> (C++17)
<tuple> (C++11)
<typeindex> (C++11)
<utility>
<variant> (C++17)
Contenedores
<array> (C++11)
<deque>
<flat_map> (C++23)
<flat_set> (C++23)
<forward_list> (C++11)
<inplace_vector> (C++26)   
<list>
<map>
<mdspan> (C++23)
<queue>
<set>
<span> (C++20)
<stack>
<unordered_map> (C++11)
<unordered_set> (C++11)
<vector>
Iteradores
<iterator>
Rangos
<generator> (C++23)
<ranges> (C++20)
 

Este archivo de encabezado es parte de la biblioteca de contenedores.

Contenido

Incluye

<initializer_list> (C++11)

Clases

(desde C++11)
Colección de pares de clave-valor, dispersos (hashed) por claves, donde las claves son únicas.
(plantilla de clase) [editar]
(desde C++11)
Colección de pares de clave-valor, dispersos (hashed) por clave.
(plantilla de clase) [editar]

Funciones

Compara los valores de unordered_map.
(plantilla de función) [editar]
Especializa el algoritmo std::swap.
(plantilla de función) [editar]
Compara los valores de unordered_multimap.
(plantilla de función) [editar]
Especializa el algoritmo std::swap.
(plantilla de función) [editar]

[editar] Sinopsis

#include <initializer_list>
 
namespace std {
 
    // plantilla de clase unordered_map:
    template <typename Key,
        typename T,
        typename Hash = hash<Key>,
        typename Pred = std::equal_to<Key>,
        typename Alloc = std::allocator<std::pair<const Key, T> > >
    class unordered_map;
 
    // plantilla de clase unordered_multimap:
    template <typename Key,
        typename T,
        typename Hash = hash<Key>,
        typename Pred = std::equal_to<Key>,
        typename Alloc = std::allocator<std::pair<const Key, T> > >
    class unordered_multimap;
 
    template <typename Key, typename T, typename Hash, typename Pred, typename Alloc>
    void swap(unordered_map<Key, T, Hash, Pred, Alloc>& x,
              unordered_map<Key, T, Hash, Pred, Alloc>& y);
    template <typename Key, typename T, typename Hash, typename Pred, typename Alloc>
    void swap(unordered_multimap<Key, T, Hash, Pred, Alloc>& x,
              unordered_multimap<Key, T, Hash, Pred, Alloc>& y);
 
    template <typename Key, typename T, typename Hash, typename Pred, typename Alloc>
    bool operator==(const unordered_map<Key, T, Hash, Pred, Alloc>& a,
                            const unordered_map<Key, T, Hash, Pred, Alloc>& b);
    template <typename Key, typename T, typename Hash, typename Pred, typename Alloc>
    bool operator!=(const unordered_map<Key, T, Hash, Pred, Alloc>& a,
                        const unordered_map<Key, T, Hash, Pred, Alloc>& b);
    template <typename Key, typename T, typename Hash, typename Pred, typename Alloc>
    bool operator==(const unordered_multimap<Key, T, Hash, Pred, Alloc>& a,
                            const unordered_multimap<Key, T, Hash, Pred, Alloc>& b);
    template <typename Key, typename T, typename Hash, typename Pred, typename Alloc>
    bool operator!=(const unordered_multimap<Key, T, Hash, Pred, Alloc>& a,
                        const unordered_multimap<Key, T, Hash, Pred, Alloc>& b);
 
} // namespace std

[editar] Plantilla de clase std::unordered_map

template <typename Key,
    typename T,
    typename Hash = hash<Key>,
    typename Pred = std::equal_to<Key>,
    typename Allocator = std::allocator<std::pair<const Key, T> > >
class unordered_map
{
public:
    // tipos
    typedef Key                                         key_type;
    typedef std::pair<const Key, T>                     value_type;
    typedef Hash                                        hasher;
    typedef Pred                                        key_equal;
    typedef Allocator                                   allocator_type;
    typedef typename allocator_type::pointer            pointer;
    typedef typename allocator_type::const_pointer      const_pointer;
    typedef typename allocator_type::reference          reference;
    typedef typename allocator_type::const_reference    const_reference;
    typedef /*definido por la implementación*/          size_type;
    typedef /*definido por la implementación*/          difference_type;
    typedef /*definido por la implementación*/          iterator;
    typedef /*definido por la implementación*/          const_iterator;
    typedef /*definido por la implementación*/          local_iterator;
    typedef /*definido por la implementación*/          const_local_iterator;
 
    // construcción/destrucción/copia
    explicit unordered_map(size_type n = véase-abajo,
                           const hasher& hf = hasher(),
                           const key_equal& eql = key_equal(),
                           const allocator_type& a = allocator_type());
    template <typename InputIterator>
    unordered_map(InputIterator f, InputIterator l,
                  size_type n = véase-abajo,
                  const hasher& hf = hasher(),
                  const key_equal& eql = key_equal(),
                  const allocator_type& a = allocator_type());
    unordered_map(const unordered_map&);
    unordered_map(unordered_map&&);
    explicit unordered_map(const Allocator&);
    unordered_map(const unordered_map&, const Allocator&);
    unordered_map(unordered_map&&, const Allocator&);
    unordered_map(initializer_list<value_type>,
                  size_type = véase-abajo,
                  const hasher& hf = hasher(),
                  const key_equal& eql = key_equal(),
                  const allocator_type& a = allocator_type());
    ~unordered_map();
    unordered_map& operator=(const unordered_map&);
    unordered_map& operator=(unordered_map&&);
    unordered_map& operator=(initializer_list<value_type>);
    allocator_type get_allocator() const noexcept;
 
    // tamaño y capacidad
    bool empty() const noexcept;
    size_type size() const noexcept;
    size_type max_size() const noexcept;
 
    // iteradores
    iterator       begin() noexcept;
    const_iterator begin() const noexcept;
    iterator       end() noexcept;
    const_iterator end() const noexcept;
    const_iterator cbegin() const noexcept;
    const_iterator cend() const noexcept;
 
    // modificadores
    template <typename... Args> pair<iterator, bool> emplace(Args&&... args);
    template <typename... Args> iterator emplace_hint(const_iterator position, Args&&... args);
    pair<iterator, bool> insert(const value_type& obj);
    template <typename P> pair<iterator, bool> insert(P&& obj);
    iterator insert(const_iterator hint, const value_type& obj);
    template <typename P> iterator insert(const_iterator hint, P&& obj);
    template <typename InputIterator> void insert(InputIterator first, InputIterator last);
    void insert(initializer_list<value_type>);
 
    iterator erase(const_iterator position);
    size_type erase(const key_type& k);
    iterator erase(const_iterator first, const_iterator last);
    void clear() noexcept;
 
    void swap(unordered_map&);
 
 
    // observadores
    hasher hash_function() const;
    key_equal key_eq() const;
 
    // búsqueda
    iterator find(const key_type& k);
    const_iterator find(const key_type& k) const;
    size_type count(const key_type& k) const;
    std::pair<iterator, iterator>
    equal_range(const key_type& k);
    std::pair<const_iterator, const_iterator> equal_range(const key_type& k) const;
    mapped_type& operator[](const key_type& k);
    mapped_type& operator[](key_type&& k);
    mapped_type& at(const key_type& k);
    const mapped_type& at(const key_type& k) const;
 
    // interfaz de cubeta (bucket)
    size_type bucket_count() const noexcept;
    size_type max_bucket_count() const noexcept;
    size_type bucket_size(size_type n) const;
    size_type bucket(const key_type& k) const;
    local_iterator begin(size_type n);
    const_local_iterator begin(size_type n) const;
    local_iterator end(size_type n);
    const_local_iterator end(size_type n) const;
    const_local_iterator cbegin(size_type n) const;
    const_local_iterator cend(size_type n) const;
 
    // política hash (de resumen)
    float load_factor() const noexcept;
    float max_load_factor() const noexcept;
    void max_load_factor(float z);
    void rehash(size_type n);
    void reserve(size_type n);
};

[editar] Plantilla de clase std::unordered_multimap

template <typename Key,
typename T,
typename Hash = hash<Key>,
typename Pred = std::equal_to<Key>,
typename Allocator = std::allocator<std::pair<const Key, T> > >
class unordered_multimap
{
public:
    // tipos
    typedef Key                                         key_type;
    typedef std::pair<const Key, T>                     value_type;
    typedef Hash                                        hasher;
    typedef Pred                                        key_equal;
    typedef Allocator                                   allocator_type;
    typedef typename allocator_type::pointer            pointer;
    typedef typename allocator_type::const_pointer      const_pointer;
    typedef typename allocator_type::reference          reference;
    typedef typename allocator_type::const_reference    const_reference;
    typedef /*definido por la implementación*/          size_type;
    typedef /*definido por la implementación*/          difference_type;
    typedef /*definido por la implementación*/          iterator;
    typedef /*definido por la implementación*/          const_iterator;
    typedef /*definido por la implementación*/          local_iterator;
    typedef /*definido por la implementación*/          const_local_iterator;
 
    // construcción/destrucción/copia
    explicit unordered_multimap(size_type n = véase-abajo,
                                const hasher& hf = hasher(),
                                const key_equal& eql = key_equal(),
                                const allocator_type& a = allocator_type());
    template <typename InputIterator>
    unordered_multimap(InputIterator f, InputIterator l,
                       size_type n = véase-abajo,
                       const hasher& hf = hasher(),
                       const key_equal& eql = key_equal(),
                       const allocator_type& a = allocator_type());
    unordered_multimap(const unordered_multimap&);
    unordered_multimap(unordered_multimap&&);
    explicit unordered_multimap(const Allocator&);
    unordered_multimap(const unordered_multimap&, const Allocator&);
    unordered_multimap(unordered_multimap&&, const Allocator&);
    unordered_multimap(initializer_list<value_type>,
                       size_type = véase-abajo,
                       const hasher& hf = hasher(),
                       const key_equal& eql = key_equal(),
                       const allocator_type& a = allocator_type());
    ~unordered_multimap();
    unordered_multimap& operator=(const unordered_multimap&);
    unordered_multimap& operator=(unordered_multimap&&);
    unordered_multimap& operator=(initializer_list<value_type>);
    allocator_type get_allocator() const noexcept;
 
 
    // tamaño y capacidad
    bool empty() const noexcept;
    size_type size() const noexcept;
    size_type max_size() const noexcept;
 
    // iteradores
    iterator       begin() noexcept;
    const_iterator begin() const noexcept;
    iterator       end() noexcept;
    const_iterator end() const noexcept;
    const_iterator cbegin() const noexcept;
    const_iterator cend() const noexcept;
 
    // modificadores
    template <typename... Args> iterator emplace(Args&&... args);
    template <typename... Args> iterator emplace_hint(const_iterator position, Args&&... args);
    iterator insert(const value_type& obj);
    template <typename P> iterator insert(P&& obj);
    iterator insert(const_iterator hint, const value_type& obj);
    template <typename P> iterator insert(const_iterator hint, P&& obj);
    template <typename InputIterator> void insert(InputIterator first, InputIterator last);
    void insert(initializer_list<value_type>);
 
    iterator erase(const_iterator position);
    size_type erase(const key_type& k);
    iterator erase(const_iterator first, const_iterator last);
    void clear() noexcept;
 
    void swap(unordered_multimap&);
 
 
 
    // observadores
    hasher hash_function() const;
    key_equal key_eq() const;
 
    // búsqueda
    iterator find(const key_type& k);
    const_iterator find(const key_type& k) const;
    size_type count(const key_type& k) const;
    std::pair<iterator, iterator>
    equal_range(const key_type& k);
    std::pair<const_iterator, const_iterator> equal_range(const key_type& k) const;
 
    // interfaz de cubeta (bucket)
    size_type bucket_count() const noexcept;
    size_type max_bucket_count() const noexcept;
    size_type bucket_size(size_type n) const;
    size_type bucket(const key_type& k) const;
    local_iterator begin(size_type n);
    const_local_iterator begin(size_type n) const;
    local_iterator end(size_type n);
    const_local_iterator end(size_type n) const;
    const_local_iterator cbegin(size_type n) const;
    const_local_iterator cend(size_type n) const;
 
    // política hash (de resumen)
    float load_factor() const noexcept;
    float max_load_factor() const noexcept;
    void max_load_factor(float z);
    void rehash(size_type n);
    void reserve(size_type n);
};