std::set<Key,Compare,Allocator>::count
De cppreference.com
size_type count( const Key& key ) const; |
(1) | |
template< class K > size_type count( const K& x ) const; |
(2) | (desde C++14) |
Devuelve el número de elementos con una clave que se compara equivalente al argumento especificado, que es o bien 1 o 0 ya que este contenedor no admite duplicados.
1) Devuelve el número de elementos con clave
key
.2) Devuelve el número de elementos con clave que se compara equivalente al valor
x
. Esta sobrecarga solo participa en la resolución de sobrecargas si Compare::is_transparent calificado-id es válido y denota un tipo. Permiten la llamada a esta función sin construir una instancia de Key
.Contenido |
[editar] Parámetros
key | - | Valor de la clave de los elementos a contar. |
x | - | Valor alterno para comparar con las claves. |
[editar] Parámetros
El número de elementos con una clave que se compara equivalente a key
o x
, que es o bien 1 o 0 para (1).
[editar] Complejidad
Logarítmica en el tamaño del contenedor.
[editar] Ejemplo
Ejecuta este código
#include <set> #include <iostream> struct S { int x; S(int i) : x{i} { std::cout << "S{" << i << "} "; } bool operator<(S const& s) const { return x < s.x; } }; struct R { int x; R(int i) : x{i} { std::cout << "R{" << i << "} "; } bool operator<(R const& r) const { return x < r.x; } }; bool operator<(R const& r, int i) { return r.x < i; } bool operator<(int i, R const& r) { return i < r.x; } int main() { std::set<int> t{3, 1, 4, 1, 5}; std::cout << t.count(1) << ", " << t.count(2) << ".\n"; std::set<S> s{3, 1, 4, 1, 5}; std::cout << ": " << s.count(1) << ", " << s.count(2) << ".\n"; // Se crearon dos objetos temporales S{1} y S{2}. // Objeto función de comparación por defecto es std::less<S>, // que no es transparente (no tiene un tipo miembro is_transparent). std::set<R, std::less<>> r{3, 1, 4, 1, 5}; std::cout << ": " << r.count(1) << ", " << r.count(2) << ".\n"; // búsqueda heterogénea de C++14; no se crearon los objetos temporales. // El comparador std::less<void> tiene tipo miembro is_transparent predefinido. }
Salida:
1, 0. S{3} S{1} S{4} S{1} S{5} : S{1} 1, S{2} 0. R{3} R{1} R{4} R{1} R{5} : 1, 0.
[editar] Véase también
Encuentra un elemento con una clave específica. (función miembro pública) | |
Devuelve un rango de elementos que coinciden con una clase específica. (función miembro pública) |