std::ranges::views::keys, std::ranges::keys_view
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.
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 argumentosde 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) | |
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) | |
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) |