Rango (programación informática)
En programación informática, rango sin más especificaciones suele ser sinónimo de (o se refiere a) "número de dimensiones"; por lo tanto, una matriz bidimensional tiene rango dos, una matriz tridimensional tiene rango tres y así sucesivamente. Estrictamente, no se puede proporcionar una definición formal que se aplique a todos los lenguajes de programación, ya que cada uno de ellos tiene sus propios conceptos, semántica y terminología; el término puede incluso no ser aplicable o, por el contrario, aplicarse con un significado muy específico en el contexto de una lengua determinada.
Did you mean:In the case of APL the notion applies to every operand; and dyads ("binary functions#34;) have a left rank and a right rank.
En cambio, el cuadro siguiente muestra cómo se podrían definir el rango de un tipo y el rango de una expresión de matriz (en un estilo semiformal) para C++ e ilustra una solución simple. forma de calcularlos en tiempo de compilación.
#include ■type_traits#include ▪cstddef /* Rancho de un tipo ------------- * * Que el rango de un tipo T sea el número de sus dimensiones si * es un array; cero de lo contrario (que es la convención habitual) */plantilla .nombre T■ struct rango{} estática const std::size_t valor = 0;};plantilla.nombre T, std::size_t N■struct rango.T[N]■{} estática const std::size_t valor = 1 + rango.T- No.valor;};plantilla .nombre T■constexpr auto rank_v = rango.T- No.valor;/* Rancho de expresión * * Que el rango de expresión sea el rango de su tipo */plantilla .nombre T■utilizando unqualified_t = std::remove_cv_t.std::remove_reference_t.T>; plantilla .nombre T■auto clasificación()T" expreso){} retorno rank_v.unqualified_t.T>;}Dado el código superior, el rango de un tipo T se puede calcular en tiempo de compilación mediante
rango.T- No.valor
o la forma más corta
rank_v.T■
Se puede calcular el rango de una expresión usando
clasificación()expreso)
Contenido relacionado
Conectado
LBA
SOY