La mia comprensione di size_t
è che sarà abbastanza grande da contenere qualsiasi valore (intero) che ci si potrebbe aspettare che sia necessario tenere. (Forse si tratta di una spiegazione scarsa?)C++: C'è qualche motivo per usare uint64_t invece di size_t
Ad esempio, se si stesse utilizzando qualcosa come un ciclo for per scorrere tutti gli elementi di un vettore, size_t
sarebbe in genere lungo 64 bit (o almeno sul mio sistema) in ordina che possa contenere tutti i possibili valori di ritorno da vector.size().
O almeno, penso che sia corretto?
Pertanto, non v'è alcun motivo di usare A piuttosto che B:
A: for(uint64_t i = 0; i < v.size(); ++ i)
B: for(size_t i = 0; i < v.size(); ++ i)
se ho sbagliato con la mia spiegazione o avete una spiegazione migliore, non esitate a modificare.
Edit: Devo aggiungere che la mia comprensione è che size_t
si comporta come un normale intero senza segno, forse non è corretto?
se avete bisogno di una garanzia che il vostro int sarà 64 bit per qualsiasi motivo (di solito la manipolazione dei byte). 'size_t' può variare a seconda del sistema e delle opzioni di compilazione –
' size_t' non è garantito per essere 64 bit – dtech
Se si utilizza 'uint64_t' su un target a 32 bit è possibile ottenere prestazioni non ottimali. – sharptooth