Estou com uma dúvida particular sobre o size_t. Qual o motivo de ter utilizado esse tipo em vez de outro como, por exemplo int, unsigned int, etc.?
Estou com uma dúvida particular sobre o size_t. Qual o motivo de ter utilizado esse tipo em vez de outro como, por exemplo int, unsigned int, etc.?
Ótima pergunta, Victor. size_t
é basicamente um inteiro cujo tamanho depende da arquitetura do processador. Em 32bits o size_t
vai ter um tamanho e em 64bits será outro.
Esse tamanho, de forma bem resumida, precisa ser grande o suficiente para armazenar um endereço em memória, entende? Por isso ele é maior em arquiteturas 64bits do que em 32bits, por exemplo, já que em SOs 64bits você consegue acessar mais endereços de memória.
Na prática, o std::vector
poderia muito bem utilizar um unsigned int
ou algum similar (long
, short
, etc), mas com size_t
, nesse caso específico, o código acaba ficando mais expressivo e faz mais sentido. A maioria dos compiladores simplesmente substituem o size_t
por algo que faça sentido naquela arquitetura e unsigned int
é a substituição mais comum (e a única que eu conheço rsrsrs).
Espero que tenha ficado claro, mas caso ainda tenha restado dúvida, só dizer. :-D
Ficou claro, Vinicius. Muito obrigado