std::set<Key,Compare,Allocator>:: count
From cppreference.net
|
size_type count
(
const
Key
&
key
)
const
;
|
(1) | (constexpr desde C++26) |
|
template
<
class
K
>
size_type count ( const K & x ) const ; |
(2) |
(desde C++14)
(constexpr desde C++26) |
Devuelve el número de elementos cuya clave es equivalente al argumento especificado.
1)
Devuelve el número de elementos con clave
key
. Esto es
1
o
0
ya que las claves siempre son únicas.
2)
Devuelve el número de elementos con clave que se compara como equivalente a
x
.
Esta sobrecarga participa en la resolución de sobrecarga solo si
Compare
es
transparent
. Permite llamar a esta función sin construir una instancia de
Key
.
Contenidos |
Parámetros
| key | - | valor clave de los elementos a contar |
| x | - | valor alternativo para comparar con las claves |
Valor de retorno
Número de elementos con clave que compara equivalente a key o x .
Complejidad
Logarítmico en el tamaño del contenedor más lineal en el número de elementos encontrados.
Notas
| Macro de prueba de características | Valor | Estándar | Característica |
|---|---|---|---|
__cpp_lib_generic_associative_lookup
|
201304L
|
(C++14) | Búsqueda de comparación heterogénea en contenedores asociativos ; sobrecarga (2) |
Ejemplo
Ejecutar este código
#include <functional> #include <iostream> #include <set> struct S { int x; S(int i) : x{i} { std::cout << "S{" << i << "} "; } bool operator<(const R& s) const { return x < s.x; } }; struct R { int x; R(int i) : x{i} { std::cout << "R{" << i << "} "; } bool operator<(const R& r) const { return x < r.x; } }; bool operator<(const R& r, int i) { return r.x < i; } bool operator<(int i, const R& 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}. // El objeto función de comparación es std::less<S> por defecto, // que no es transparente (no tiene el tipo anidado "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 objetos temporales. // El comparador std::less<void> tiene "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.
Véase también
|
encuentra elemento con clave específica
(función miembro pública) |
|
|
devuelve rango de elementos que coinciden con una clave específica
(función miembro pública) |