Espacios de nombres
Variantes
Acciones

std::size_t

De cppreference.com
< cpp‎ | types
 
 
 
Apoyo de tipos
Tipos básicos
Tipos fundamentales
Tipos enteros de anchura fija (C++11)
size_t
(C++17)
Límites numéricos
Interfaz de C de límites numéricos
Información de tipo
en tiempo de ejecución
Rasgos de tipos
Categorías de tipos
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Propiedades de tipos
(C++11)
(C++11)
(C++14)
(C++11)
(C++11)(hasta C++20)
(C++11)(en desuso en C++20)
(C++11)
Constantes de rasgos de tipos
Metafunciones
(C++17)
Contexto de evaluación constante
Operaciones soportadas
Relaciones y consultas de propiedades
Modificaciones de tipos
(C++11)(C++11)(C++11)
Transformaciones de tipos
(C++11)
(C++11)
(C++17)
(C++11)(hasta C++20)(C++17)
 
Definido en el archivo de encabezado <cstddef>
Definido en el archivo de encabezado <cstdio>
Definido en el archivo de encabezado <cstdlib>
Definido en el archivo de encabezado <cstring>
Definido en el archivo de encabezado <ctime>
Definido en el archivo de encabezado <cuchar>
(desde C++17)
Definido en el archivo de encabezado <cwchar>
typedef /*definido por la implementación*/ size_t;

std::size_t es el tipo entero sin signo del resultado del operador sizeof así como del operador sizeof... y el operador alignof (desde C++11).

La anchura de bits de std::size_t no es menor que 16.

(desde C++11)

[editar] Notas

std::size_t puede almacenar el tamaño máximo de un objeto teóricamente posible de cualquier tipo (incluyendo array). En muchas plataformas (una excepción son sistemas con direccionamiento segmentado) std::size_t puede almacenar seguramente el valor de cualquier puntero no miembro, en cuyo caso es sinónimo de std::uintptr_t.

std::size_t se utiliza comúnmente para la indexación de arrays y el conteo en bucles. Los programas que utilizan otros tipos, como por ejemplo unsigned int, para la indexación de arrays pueden fallar en, por ejemplo, sistemas de 64 bits cuando el subíndice sobrepasa UINT_MAX o si se basa en aritmética modular de 32 bits.

Al indexar los contenedores de C++, tales como std::string, std::vector, etc., el tipo adecuado es la definición de tipo miembro size_typeproporcionada por dichos contenedores. Por lo general se define como sinónimo de std::size_t.

[editar] Ejemplo

#include <cstddef>
#include <iostream>
#include <array>
 
int main()
{
    std::array<std::size_t,10> a;
    for (std::size_t i = 0; i != a.size(); ++i)
        a[i] = i;
    for (std::size_t i = a.size()-1; i < a.size(); --i)
        std::cout << a[i] << " ";
}

Salida:

9 8 7 6 5 4 3 2 1 0

[editar] Véase también

Tipo entero con signo devuelto al restar dos punteros.
(typedef) [editar]
Desplazamiento de bytes desde el comienzo de un tipo con diseño estándar al miembro especificado.
(macro de función) [editar]