Plantilla std::extent() en C++ con ejemplos

La plantilla std::is_const de C++ STL está presente en el archivo de encabezado <type_traits> . Si A es una array que tiene un rango mayor que B, la extensión es el límite de la dimensión Ath y si B es cero y A es la array de límite desconocido, entonces el valor de la extensión es cero.

Archivo de cabecera:

#include<type_traits>

Sintaxis:

template 
  <class A, unsigned B = 0>
  struct extent;

Parámetros: Acepta los siguientes parámetros:

  • R : Representa un tipo particular.
  • B : Representa las dimensiones para las que se quiere obtener la medida.

A continuación se encuentran los programas para demostrar std::extent():

Programa 1:

// C++ program to demonstrate
// std::extent()
  
#include <bits/stdc++.h>
#include <type_traits>
using namespace std;
  
// Driver Code
int main()
{
    // By default dimension is zero
    cout << extent<int[3]>::value << endl;
    cout << extent<int[3][4], 0>::value << endl;
    cout << extent<int[3][4], 1>::value << endl;
    cout << extent<int[3][4], 2>::value << endl;
    cout << extent<int[]>::value << endl;
  
    const int ints[] = { 1, 2, 3, 4 };
  
    // Used to print the size of array
    cout << extent<decltype(ints)>::value
         << endl;
  
    return 0;
}
Producción:

3
3
4
0
0
4

Programa 2:

// C++ program to demonstrate
// std::extent()
  
#include <bits/stdc++.h>
#include <type_traits>
using namespace std;
  
// Driver Code
int main()
{
    typedef int gfg[][50][70];
    cout << "gfg array (int[][50][70]):" << endl;
    cout << "rank: " << rank<gfg>::value << endl;
    cout << extent<gfg, 0>::value << endl;
    cout << extent<gfg, 1>::value << endl;
    cout << extent<gfg, 2>::value << endl;
    cout << extent<gfg, 3>::value << endl;
    return 0;
}
Producción:

gfg array (int[][50][70]):
rank: 3
0
50
70
0

Referencia: http://www.cplusplus.com/reference/type_traits/extent/

Publicación traducida automáticamente

Artículo escrito por bansal_rtk_ 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 *