Espacios de nombres
Variantes
Acciones

std::ranges::views::keys, std::ranges::keys_view

De cppreference.com
< cpp‎ | ranges
 
 
Biblioteca de rangos
Adaptadores de rangos
 
Definido en el archivo de encabezado <ranges>
template<class R>
using keys_view =ranges::elements_view<R, 0>;
(1) (desde C++20)
namespace views {

    inlineconstexprauto keys = ranges::elements<0>;

}
(2) (desde C++20)

Toma una vista (view) de valores similares a tuplas (por ejemplo std::tuple o std::pair), y produce una vista con un tipo valor del primer elemento del tipo valor de la vista adaptada.

1) Un alias para ranges::elements_view<R, 0>.
2)Objeto adaptador de rango. La expresión views::keys(e) es equivalente en expresión a keys_view<views::all_t<decltype((e))>>{e} para cualquier subexpresión e adecuada.

Contenido

[editar]Equivalente en expresión

La expresión e es equivalente-en-expresión a la expresión f, si e y f tienen los mismos efectos, ambas potencialmente lanzan o ambas potencialmente no lanzan (es decir, noexcept(e)==noexcept(f)), y ambas son subexpresiones constantes o ambas no son subexpresiones constantes.

[editar]Notas

keys_view puede ser útil para extraer claves de los contenedores asociativos; por ejemplo, for(autoconst& key : std::views::keys(map)){/*...*/}.

[editar]Ejemplo

Muestra valores para cada tipo de quark en la física de partículas.

#include <iomanip>#include <iostream>#include <ranges>#include <utility>#include <vector>#include <string>   int main(){conststd::vector<std::pair<std::string, double>> masa_del_quark{// MeV/c²{"up", 2.3}, {"down", 4.8}, {"charm", 1275}, {"strange", 95}, {"top", 173'210}, {"bottom", 4'180}, };   conststd::vector<std::pair<std::string, double>> terminos{// términos traducidos{"(arriba)", 2.3}, {"(abajo)", 4.8}, {"(encanto)", 1275}, {"(extraño)", 95}, {"(cima)", 173'210}, {"(fondo)", 4'180}, };     std::cout<<"nombre del quark: │ ";for(std::stringconst& nombre : std::views::keys(masa_del_quark))std::cout<<std::setw(9)<< nombre <<" │ ";   std::cout<<"\n""

Salida:

nombre del quark: │ up │ down │ charm │ strange │ top │ bottom │ traducción:

[editar]Informes de defectos

Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.

ID Aplicado a Comportamiento según lo publicado Comportamiento correcto
LWG 3563 C++20 keys_view es incapaz de participar en la deducción de argumentos
de plantillas de clase debido a su uso de views::all_t.
views::all_t se eliminó.

[editar]Véase también

Toma una vista (view) que consiste valores similares a pares y produce una vista de los segundos elementos de cada par.
(plantilla de clase)(objeto adaptador de rango)[editar]
Toma una vista (view) que consiste en valores similares a tuplas y a un número N y produce una vista del N-ésimo elemento de cada tupla.
(plantilla de clase)(objeto adaptador de rango)[editar]
BLAS-como una rebanada de valarray: índice de inicio, duración, ritmo
Original:
BLAS-like slice of a valarray: starting index, length, stride
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(clase)[editar]
close