std::size_t
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 |
(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) | |
Desplazamiento de bytes desde el comienzo de un tipo con diseño estándar al miembro especificado. (macro de función) | |
Documentación de C de size_t
|