¿Cuáles son las diferentes formas en que puede obtener la longitud de una matriz en C ++?

Tanto para las matrices de C ++ como para las matrices de estilo C, en C ++ de hoy, la forma más conveniente es la función genérica std :: size:

#include
#include
#include
int main ()
{
std :: array a1;
int a2 [12];
std :: cout << "Tamaño de matriz C ++:" << std :: size (a1) << '\ n'
<< "Tamaño de matriz C:" << std :: size (a2) << '\ n';
}

demostración en vivo: [Wandbox] 三 へ (へ՞ ਊ՞) へ ハ ッ ハ ッ

Dado que las matrices C y C ++ mantienen su tamaño como parte de su tipo, es posible extraerlo utilizando la especialización de plantilla, sin llamar a ninguna función (de hecho, así es como funciona std :: size para matrices C:

#include
#include

plantilla
demostración nula (T (&) [N]) {
std :: cout << "Tamaño de matriz C:" << N << '\ n';
}

plantilla
demostración vacía (const std :: array &) {
std :: cout << "Tamaño de matriz C ++:" << N << '\ n';
}

int main ()
{
std :: array a1;
int a2 [12];
demo (a1);
demo (a2);
}

demostración en vivo: [Wandbox] 三 へ (へ՞ ਊ՞) へ ハ ッ ハ ッ

Hay otras formas, por supuesto, como el uso de std :: extensión para las matrices C (es particularmente útil con matrices multidimensionales)

Este es exactamente el tipo de pregunta que debes buscar en Google antes de preguntar aquí. Eso es lo que hice, y la parte superior de la lista fue: ¿Cómo encontrar el tamaño de la matriz en C / C ++ sin usar sizeof? – GeeksforGeeks

En serio, háganos preguntas que no sean preguntas triviales para principiantes o tareas para el hogar.

int a [n];
int cuenta = 0;
para (int i = 0; a [i]! = 0; i ++)
{
recuento ++;
}

Ejecútelo en un bucle for, inicialice i con 0, ejecútelo hasta que el elemento i de la matriz sea nulo, incremente el contador.

Lo mejor y más fácil que conozco es:

int array = {1,2,3,4,5,6};

int longitud = sizeof (matriz) / sizeof (matriz [0]);