Ranga (programowanie komputerów)
W programowaniu komputerowym stopień bez dalszych specyfikacji jest zwykle synonimem (lub odnosi się do) „liczby wymiarów”; zatem tablica dwuwymiarowa ma rangę drugą , tablica trójwymiarowa ma rangę trzecią i tak dalej. Ściśle rzecz biorąc, nie można podać formalnej definicji, która miałaby zastosowanie do każdego języka programowania , ponieważ każdy z nich ma swoje własne koncepcje, semantykę i terminologię; termin ten może nawet nie mieć zastosowania lub wręcz przeciwnie, być stosowany w bardzo konkretnym znaczeniu w kontekście danego języka.
W przypadku APL pojęcie to dotyczy każdego operandu; a diady („funkcje binarne”) mają lewą i prawą rangę .
Zamiast tego ramka poniżej pokazuje, jak można zdefiniować rangę typu i rangę wyrażenia tablicowego (w stylu półformalnym) dla C++ i ilustruje prosty sposób obliczania ich w czasie kompilacji.
0
#include <type_traits> #include <cstddef> /* Ranga typu * ------------- * * Niech rangą typu T będzie liczba jego wymiarów, jeśli * jest to typ szyk; zero w przeciwnym razie (co jest typową konwencją) */ szablon < nazwa typu T > struct rank { static const std :: size_t value = ; }; szablon < nazwa typu T ,
std :: size_t N > ranga struktury < T [ N ] > { stała statyczna std :: wartość_rozmiaru = 1 + ranga < T > :: wartość ; }; szablon < nazwa typu T > constexpr auto ranking_v = ranga < T >:: wartość ;
/* Ranga wyrażenia * * Niech ranga wyrażenia będzie rangą jego typu */ szablon < nazwa typu T > using unqualified_t = std :: usuń_cv_t < std :: usuń_referencję_t < T >> ; szablon < nazwa typu T > auto rankingof ( T && wyrażenie ) { return
ranga_v < niekwalifikowany_t < T >> ; }
Biorąc pod uwagę kod powyżej, rangę typu T można obliczyć w czasie kompilacji według
ranga < T >:: wartość
lub krótsza forma
ranga_v < T >
Obliczenia rangi wyrażenia można dokonać za pomocą
ranga ( wyrażenie )
Zobacz też
- Ranga (algebra liniowa) , aby zapoznać się z definicją rangi w zastosowaniu do macierzy
- Ranga (język programowania J) , koncepcja o tej samej nazwie w języku programowania J