std::ranges::views::values, std::ranges::values_view
| Definido en el archivo de encabezado <ranges>
|
||
template<class R> using values_view = ranges::elements_view<R, 1>; |
(1) | (desde C++20) |
namespace views { inline constexpr auto values = ranges::elements<1>; } |
(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 segundo elemento del tipo valor de la vista adaptada.
ranges::elements_view<R, 1>.views::values(e) es equivalente en expresión a values_view<views::all_t<decltype((e))>>{e} para cualquier subexpresión e adecuada.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.
Notas
values_view puede ser útil para extraer valores de los contenedores asociativos; por ejemplo, for (auto const& value : std::views::values(map)) { /*...*/ }.
Ejemplo
#include <iostream>
#include <ranges>
#include <map>
int main()
{
std::map<char, int> mapa{ {'A', 1}, {'B', 2}, {'C', 3}, {'D', 4}, {'E', 5} };
auto non = [](int x) { return 0 != (x & 1); };
std::cout << "Valores nones en el mapa: ";
for (int valor : mapa | std::views::values | std::views::filter(non))
std::cout << valor << ' ';
}
Salida:
Valores nones en el mapa: 1 3 5
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ó. |
Véase también
(C++20) |
Toma una vista (view) que consiste en valores similares a pares y produce una vista de los primeros 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) |