std::tuple_element() y std::tuple_size() en C++ con ejemplos

Las funciones
tuple_element() y tuple_size()
solo se definen para elementos que usan la interfaz tuple_like .

tuple_element():
La función tuple_element(array) de C++ proporciona acceso indexado de tipo compilación al tipo de los elementos de la array mediante una interfaz tipo tupla.

Sintaxis-

template< size_t I, class T, size_t N >
struct tuple_element<I, array<T, N> >;

Parámetros-

T − type for which the tuple element is obtained.
I − index of the element.
N − the size of the array.

Ejemplo
: a continuación se muestra el programa C++ para implementar el concepto de tuple_element(array)-

C++

// C++ program to implement
// the above approach
  
#include <array>
#include <iostream>
#include <tuple>
#include <type_traits>
using namespace std;
  
// Driver code
int main()
{
    // Define array
    array<int, 3> data{ 3, 5, 10 };
  
    // Type of element at index 0
    using type = std::tuple_element<0,
                                    decltype(data)>::type;
  
    // Compare type with int
    // returns true
    cout << std::is_same<type,
                         int>::value
         << '\n';
  
    // Compare type with char
    // returns false
    cout << std::is_same<type,
                         char>::value
         << '\n';
}
Producción

1
0

tuple_size():
La función de C++ tuple_size(array) devuelve el número total de elementos presentes en la array .

Sintaxis-

template< class T, size_t N >
class tuple_size< array<T, N> > :
 integral_constant<size_t, N>
{ };

Parámetros-

T − type for which the tuple size is obtained.

Ejemplo
: a continuación se muestra el programa C++ para implementar el concepto de tuple_size()-

C++

// C++ program to implement
// the above approach
#include <array>
#include <iostream>
using namespace std;
  
// Driver code
int main()
{
    // Array of size 6
    array<int, 6> a;
  
    // Find size using tuple_size
    cout << tuple_size<decltype(a)>::value;
    return 0;
}
Producción

6

Publicación traducida automáticamente

Artículo escrito por analystayush y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *