Archivo de encabezado de la biblioteca estándar <unordered_map>
De cppreference.com
Este archivo de encabezado es parte de la biblioteca de contenedores.
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) | |
(desde C++11) |
Colección de pares de clave-valor, dispersos (hashed) por clave. (plantilla de clase) | |
Funciones | ||
Compara los valores de unordered_map. (plantilla de función) | ||
Especializa el algoritmo std::swap. (plantilla de función) | ||
Compara los valores de unordered_multimap. (plantilla de función) | ||
Especializa el algoritmo std::swap. (plantilla de función) |
[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); };