Archivo de encabezado de la biblioteca estándar <unordered_set>
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 claves únicas, dispersas (hashed) por claves. (plantilla de clase) | |
(desde C++11) |
Colección de claves, dispersos (hashed) por claves. (plantilla de clase) | |
Funciones | ||
Compara los valores de unordered_set. (plantilla de función) | ||
Especializa el algoritmo std::swap. (plantilla de función) | ||
Compara los valores de unordered_multiset. (plantilla de función) | ||
Especializa el algoritmo std::swap. (plantilla de función) |
[editar] Sinopsis
#include <initializer_list> namespace std { // plantilla de clase unordered_set: template <typename Key, typename Hash = hash<Key>, typename Pred = std::equal_to<Key>, typename Alloc = std::allocator<Key> > class unordered_set; // plantilla de clase unordered_multiset: template <typename Key, typename Hash = hash<Key>, typename Pred = std::equal_to<Key>, typename Alloc = std::allocator<Key> > class unordered_multiset; template <typename Key, typename Hash, typename Pred, typename Alloc> void swap(unordered_set<Key, Hash, Pred, Alloc>& x, unordered_set<Key, Hash, Pred, Alloc>& y); template <typename Key, typename Hash, typename Pred, typename Alloc> void swap(unordered_multiset<Key, Hash, Pred, Alloc>& x, unordered_multiset<Key, Hash, Pred, Alloc>& y); template <typename Key, typename Hash, typename Pred, typename Alloc> bool operator==(const unordered_set<Key, Hash, Pred, Alloc>& a, const unordered_set<Key, Hash, Pred, Alloc>& b); template <typename Key, typename Hash, typename Pred, typename Alloc> bool operator!=(const unordered_set<Key, Hash, Pred, Alloc>& a, const unordered_set<Key, Hash, Pred, Alloc>& b); template <typename Key, typename Hash, typename Pred, typename Alloc> bool operator==(const unordered_multiset<Key, Hash, Pred, Alloc>& a, const unordered_multiset<Key, Hash, Pred, Alloc>& b); template <typename Key, typename Hash, typename Pred, typename Alloc> bool operator!=(const unordered_multiset<Key, Hash, Pred, Alloc>& a, const unordered_multiset<Key, Hash, Pred, Alloc>& b); } // namespace std
[editar] Plantilla de clase std::unordered_set
template <typename Key, typename Hash = hash<Key>, typename Pred = std::equal_to<Key>, typename Allocator = std::allocator<Key> > class unordered_set { public: // tipos typedef Key key_type; typedef Key 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_set(size_type n = definido-por-la-implementación, const hasher& hf = hasher(), const key_equal& eql = key_equal(), const allocator_type& a = allocator_type()); template <typename InputIterator> unordered_set(InputIterator f, InputIterator l, size_type n = see below, const hasher& hf = hasher(), const key_equal& eql = key_equal(), const allocator_type& a = allocator_type()); unordered_set(const unordered_set&); unordered_set(unordered_set&&); explicit unordered_set(const Allocator&); unordered_set(const unordered_set&, const Allocator&); unordered_set(unordered_set&&, const Allocator&); unordered_set(initializer_list<value_type>, size_type = see below, const hasher& hf = hasher(), const key_equal& eql = key_equal(), const allocator_type& a = allocator_type()); ~unordered_set(); unordered_set& operator=(const unordered_set&); unordered_set& operator=(unordered_set&&); unordered_set& 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); pair<iterator, bool> insert(value_type&& obj); iterator insert(const_iterator hint, const value_type& obj); iterator insert(const_iterator hint, value_type&& 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_set&); // 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); };
[editar] Clase std::unordered_multiset
template <typename Key, typename Hash = hash<Key>, typename Pred = std::equal_to<Key>, typename Allocator = std::allocator<Key> > class unordered_multiset { public: // tipos typedef Key key_type; typedef Key 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; // construct/destroy/copy explicit unordered_multiset(size_type n = /*definido por la implementación*/, const hasher& hf = hasher(), const key_equal& eql = key_equal(), const allocator_type& a = allocator_type()); template <typename InputIterator> unordered_multiset(InputIterator f, InputIterator l, size_type n = see below, const hasher& hf = hasher(), const key_equal& eql = key_equal(), const allocator_type& a = allocator_type()); unordered_multiset(const unordered_multiset&); unordered_multiset(unordered_multiset&&); explicit unordered_multiset(const Allocator&); unordered_multiset(const unordered_multiset&, const Allocator&); unordered_multiset(unordered_multiset&&, const Allocator&); unordered_multiset(initializer_list<value_type>, size_type = see below, const hasher& hf = hasher(), const key_equal& eql = key_equal(), const allocator_type& a = allocator_type()); ~unordered_multiset(); unordered_multiset& operator=(const unordered_multiset&); unordered_multiset operator=(unordered_multiset&&); unordered_multiset& 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); iterator insert(value_type&& obj); iterator insert(const_iterator hint, const value_type& obj); iterator insert(const_iterator hint, value_type&& 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_multiset&); // 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); };