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 { inline constexpr auto 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 (auto const& 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() { const std::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}, }; const std::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::string const& 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) |