Función size de <array> de C++

C++ 容器类 <array>Clase contenedora <array> de C++


sizeEs una de las funciones más comunes y básicas de array, utilizada paraobtener el número de elementos del contenedor。

sizeEs una función miembro de la clase contenedora, utilizada paradevolver el número de elementos que contiene actualmente el contenedor. A diferencia de vector, el tamaño de array es fijo y se determina en tiempo de compilación.

sizeEs la función más frecuentemente usada al operar con array, utilizada en escenarios como recorrido en bucles, verificación de límites, etc.

Definición de la palabra: sizeSignifica 'tamaño' e indica el número de elementos del contenedor.


Sintaxis básica y parámetros

sizeEs una función miembro de la clase contenedora; no requiere parámetros.

Formato de sintaxis

constexpr size_type size() const noexcept;

Descripción de parámetros

  • Parámetro: sin parámetros
    • sizeNo acepta ningún parámetro.

Descripción de la función

  • Valor de retorno: devuelvesize_typetipo (normalmentesize_t), que indica el número de elementos del contenedor.
  • Efecto: Devuelve un entero no negativo que representa el número de elementos almacenados de forma fija en el contenedor.
  • Nota: size()Devuelve una constante de tiempo de compilación (constexpr), que puede utilizarse en tiempo de compilación.

Ejemplo

A través de una serie de ejemplos, dominaremos por completosizeel uso de `size()`.

Ejemplo 1: Uso básico - Obtener el número de elementos

Ejemplo

#include <iostream>
#include <array>

int main() {
    // array de diferentes tamaños
    std::array<int, 3> small = {1, 2, 3};
    std::array<int, 5> medium = {1, 2, 3, 4, 5};
    std::array<int, 10> large = {};

    std::cout << "tamaño del array pequeño: " << small.size() << std::endl;
    std::cout << "tamaño del array mediano: " << medium.size() << std::endl;
    std::cout << "tamaño del array grande: " << large.size() << std::endl;

    return 0;
}

Resultado esperado:

small array 大小: 3
medium array 大小: 5
large array 大小: 10

Análisis del código:

  1. El tamaño de array se determina en tiempo de compilación y se especifica mediante el parámetro de plantilla.
  2. size()Lo que devuelve es precisamente este valor determinado en tiempo de compilación.

Ejemplo 2: Usar size() en un bucle

size()Se utiliza con mayor frecuencia para controlar el recorrido del bucle.

Ejemplo

#include <iostream>
#include <array>

int main() {
    std::array<int, 5> numbers = {10, 20, 30, 40, 50};

    // Usar size() para controlar el bucle
    std::cout << "Recorrido de todos los elementos: ";
    for(size_t i = 0; i < numbers.size(); ++i) {
        std::cout << numbers[i] << " ";
    }
    std::cout << std::endl;

    // Usar size() para obtener el límite del recorrido inverso
    std::cout << "Recorrido inverso: ";
    for(size_t i = numbers.size(); i > 0; --i) {
        std::cout << numbers[i - 1] << " ";
    }
    std::cout << std::endl;

    return 0;
}

Resultado esperado:

遍历所有元素: 10 20 30 40 50
反向遍历: 50 40 30 20 10

Análisis del código:

  • numbers.size()Devuelve 5, la condición del buclei < numbers.size()asegura que no se salga de los límites.
  • En el recorrido inverso, desdesize()se comienza a decrementar hasta 1, y luego se accede a[i-1]。
  • Ejemplo 3: Usar constexpr size

    El `size()` de arraysize()es constexpr, se puede usar en tiempo de compilación.

    Ejemplo

    #include <iostream>
    #include <array>

    // Función de plantilla: crear un array de tamaño dado
    template<size_t N>
    void printSize(const std::array<int, N>& arr) {
        // size() puede usarse en lugares que requieran una constante de tiempo de compilación
        constexpr size_t s = arr.size();
        std::cout << "Array size: " << s << std::endl;
    }

    int main() {
        std::array<int, 5> arr = {1, 2, 3, 4, 5};
        printSize(arr);

        return 0;
    }

    Análisis del código:

    • El `size()` de arraysize()Síconstexpr, se puede evaluar en tiempo de compilación.
    • A diferencia de vector, el `size()` de vectorsize()no es una constante de tiempo de compilación.

    C++ 容器类 <array>Clase contenedora <array> de C++

    Otras extensiones