Espacios de nombres
Variantes
Acciones

std::set<Key,Compare,Allocator>::count

De cppreference.com
< cpp‎ | container‎ | set
 
 
 
 
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

#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) [editar]
Devuelve un rango de elementos que coinciden con una clase específica.
(función miembro pública) [editar]