Función size de <array> de C++
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: devuelve
size_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 <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:
- El tamaño de array se determina en tiempo de compilación y se especifica mediante el parámetro de plantilla.
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 <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, desde
size()se comienza a decrementar hasta 1, y luego se accede a[i-1]。 - El `size()` de array
size()Síconstexpr, se puede evaluar en tiempo de compilación. - A diferencia de vector, el `size()` de vector
size()no es una constante de tiempo de compilación.
Ejemplo 3: Usar constexpr size
El `size()` de arraysize()es constexpr, se puede usar en tiempo de compilación.
Ejemplo
#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:
Otras extensiones