Jdirais que pour la plupart des boules, size_t est mieux que int car il n'est pas rare de boucler de 0 ou 1 à Truc où Truc est un entier non signé(enfin il vaut mieux...) qui est souvent du type size_t si le code est bien fait.
Cela peut éviter un warning concernant une comparaison signé/non signé et puis c'est tout simplemnet plus propre.
Bon après c'est vrai que çà peut paraître être de la pinaille...
enfin, je suis d'accord davidbrcz, int et size_t sont tout simplement différents.
C'est toujours le même problème, sur x86 oui on a, je crois, unsigned int=size_t mais sur un processeur 64-bit, selon que le compilo est LP64,ILP64 ou LLP64 et bien on n'aura pas forcemment unsigned int=size_t, et je dirais même que c'est très improbable puisque la tendance est de laisser int en 32-bit alors que size_t est un entier 64-bit.
size_t doit être assez grand pour addresser n'importe quel octet de la mémoire (on s'en sert d'offset, ou parfois d'itérateur, bref, pour tout ce qui touche à la mémoire). Il devrait donc être 32 bits sur un système 32 bits, et 64 bits sur un système 64 bits. Toutefois, comme l'a souligné pamaury, il est rare d'avoir un size_t à 64 bits.
En gros c'est qu'il a une tache comme chaque type, comme chaque classe. int sert à retenir une information sur un nombre entier (non signé); size_t sert à retenir une taille ou une position à l'intérieur d'une taille. L'espace mémoire peut changer entres compilateurs et/ou entres platformes mais sa vocation reste la même.
P.S. Pour être encore plus standard dans la STL on devrait utiliser string::size_type pour une taille de string et vector::size_type pour une taille de vector, etc... Et ainsi se blinder contre les changements de versions, de compilateurs ou de plateformes.
la largeur des registre internes du processeur.
Les proco actuels sont globalemnt tous en 32 Bit même si la part des 64 grimpe , grimpe...
A terme , les 32 bit vont disparaite pour laisser la place à des 64 bits.
int sert à retenir une information sur un nombre entier (non signé)
En général, int est plutôt signé.
Dah! je me suis simplement mélangé, ça arrive quand j'écris vite
quel est la différence entre un size_t et un int
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.