Site Info Site Info

C++ Number Of Elements In Array

C++ Number Of Elements In Array

En C++, averiguar el número de elementos en un array es una tarea común. Te guiaré paso a paso para lograrlo.

Tamaño del array en la declaración

Cuando declaras un array y especificas el tamaño, ya conoces el número de elementos. Por ejemplo, si escribes int numeros[10];, sabes que tienes un array llamado numeros con 10 elementos. En este caso, el tamaño está explícitamente definido.

Uso de sizeof

El operador sizeof es muy útil. Primero, obtienes el tamaño total del array en bytes. Luego, obtienes el tamaño de un solo elemento del array en bytes. Finalmente, divides el tamaño total del array entre el tamaño de un elemento para obtener el número de elementos.

Considera este ejemplo: int mi_array[] = {1, 2, 3, 4, 5};. El código para encontrar el número de elementos sería: sizeof(mi_array) / sizeof(mi_array[0]). sizeof(mi_array) devuelve el tamaño total del array. sizeof(mi_array[0]) devuelve el tamaño del primer elemento (un int en este caso). La división te da el número de elementos.

Ejemplo de código completo

Aquí tienes un ejemplo completo en C++:

count number of odd and even elements in given array in c++ - YouTube
count number of odd and even elements in given array in c++ - YouTube

#include <iostream>

int main() {
  int mi_array[] = {10, 20, 30, 40, 50, 60, 70};
  size_t numero_elementos = sizeof(mi_array) / sizeof(mi_array[0]);

  std::cout << "El numero de elementos en el array es: " << numero_elementos << std::endl;

  return 0;
}

Este código primero incluye la librería iostream. Luego, declara un array llamado mi_array. Después, calcula el número de elementos usando sizeof. Finalmente, imprime el resultado en la consola.

¿Por qué usar size_t?

size_t es un tipo de dato diseñado para representar tamaños. Es un tipo entero sin signo garantizado para ser lo suficientemente grande para contener el tamaño de cualquier objeto. Usar size_t es la práctica recomendada para almacenar el resultado de sizeof.

C++ Arrays - GeeksforGeeks
C++ Arrays - GeeksforGeeks

Arrays pasados a funciones

Cuando pasas un array a una función, este se convierte en un puntero. En ese caso, sizeof no funciona como se espera. Dentro de la función, sizeof devolverá el tamaño del puntero, no el tamaño del array original. Para evitar esto, necesitas pasar el tamaño del array como un parámetro adicional.

Ejemplo:

How To Find The Number Of Elements In An Array C++ at Erich Mays blog
How To Find The Number Of Elements In An Array C++ at Erich Mays blog

#include <iostream>

void imprimir_array(int arr[], size_t tamanio) {
  for (size_t i = 0; i < tamanio; ++i) {
    std::cout << arr[i] << " ";
  }
  std::cout << std::endl;
}

int main() {
  int mi_array[] = {1, 2, 3, 4, 5};
  size_t numero_elementos = sizeof(mi_array) / sizeof(mi_array[0]);

  imprimir_array(mi_array, numero_elementos);

  return 0;
}

En este ejemplo, la función imprimir_array recibe el array y su tamaño. Dentro de la función, usamos el tamaño pasado para iterar sobre el array correctamente.

Alternativas modernas: std::array y std::vector

En C++ moderno, es preferible usar std::array o std::vector en lugar de los arrays nativos. std::array tiene un tamaño fijo conocido en tiempo de compilación. std::vector es un array dinámico que puede crecer o reducirse en tiempo de ejecución. Ambos proporcionan una función size() que devuelve el número de elementos.

C++ Array Basics | TestingDocs.com
C++ Array Basics | TestingDocs.com

Ejemplo con std::array:


#include <iostream>
#include <array>

int main() {
  std::array<int, 5> mi_array = {1, 2, 3, 4, 5};
  size_t numero_elementos = mi_array.size();

  std::cout << "El numero de elementos en el array es: " << numero_elementos << std::endl;

  return 0;
}

Ejemplo con std::vector:


#include <iostream>
#include <vector>

int main() {
  std::vector<int> mi_vector = {1, 2, 3, 4, 5};
  size_t numero_elementos = mi_vector.size();

  std::cout << "El numero de elementos en el vector es: " << numero_elementos << std::endl;

  return 0;
}

Estos ejemplos muestran cómo usar la función size() para obtener el número de elementos en un std::array y un std::vector, respectivamente. El uso de estas estructuras de datos modernas facilita la gestión de arrays y evita algunos de los problemas asociados con los arrays nativos.

Gallery

Step 4: C/C++ Arrays | Make Tech EZ
How to count the number of even and odd elements in an array in C++
How To Find The Number Of Elements In An Array C++ at Erich Mays blog
Count Number of Unique Elements in Array in C Language
Arrays in C/C++ - GeeksforGeeks
C++ Program To Find Duplicate Element In Array Time Complexity O(n