Mein Verständnis von size_t
ist, dass es groß genug sein wird, um irgendeinen (ganzzahligen) Wert zu halten, von dem Sie erwarten, dass er gehalten wird. (Vielleicht ist das eine schlechte Erklärung?)C++: Gibt es irgendeinen Grund, uint64_t anstelle von size_t zu verwenden?
Zum Beispiel, wenn Sie so etwas wie eine for-Schleife wurden alle Elemente in einem Vektor iterieren, size_t
typischerweise 64 Bit lang sein würde (oder zumindest auf meinem System) in Reihenfolge, dass es alle möglichen Rückgabewerte von vector.size() enthalten kann.
Oder zumindest, ich denke, das ist richtig? Daher
, gibt es keinen Grund ein eher zu verwenden als B:
A: for(uint64_t i = 0; i < v.size(); ++ i)
B: for(size_t i = 0; i < v.size(); ++ i)
Wenn ich falsch mit meiner Erklärung, oder Sie haben eine bessere Erklärung, Bitte zögern Sie nicht zu bearbeiten.
Edit: Ich sollte hinzufügen, dass mein Verständnis ist, dass size_t
verhält sich wie eine normale vorzeichenlose ganze Zahl - vielleicht ist das nicht korrekt?
Wenn Sie eine harte Garantie benötigen, dass Ihr int 64 Bit aus irgendeinem Grund (in der Regel Byte-Manipulation) sein wird. 'size_t' kann je nach System und Kompilierungsoptionen variieren. –
' size_t' garantiert nicht 64bit – dtech
Wenn Sie 'uint64_t' auf einem 32-Bit-Ziel verwenden, können Sie eine Leistung erzielen, die weit von der optimalen entfernt ist. – sharptooth