Hiểu biết của tôi về size_t
là nó sẽ đủ lớn để giữ bất kỳ giá trị (số nguyên) nào mà bạn có thể mong đợi nó được yêu cầu giữ. Ví dụ, nếu bạn đang sử dụng một cái gì đó giống như vòng lặp for để lặp qua tất cả các phần tử trong một vector, thì size_t
thường sẽ dài 64 bit (hoặc ít nhất là trên hệ thống của tôi) trong để nó có thể giữ tất cả các giá trị trả về có thể từ vector.size().C++: Có lý do nào để sử dụng uint64_t thay vì size_t
Hoặc ít nhất, tôi nghĩ điều đó là chính xác?
Vì vậy, là có lý do nào để sử dụng A hơn B:
A: for(uint64_t i = 0; i < v.size(); ++ i)
B: for(size_t i = 0; i < v.size(); ++ i)
Nếu tôi sai với lời giải thích của tôi hoặc bạn có một lời giải thích tốt hơn, xin vui lòng chỉnh sửa.
Chỉnh sửa: Tôi nên thêm rằng sự hiểu biết của tôi là size_t
hoạt động như một số nguyên không dấu bình thường - có lẽ điều đó không đúng?
nếu bạn cần đảm bảo rằng int của bạn sẽ là 64 bit vì bất kỳ lý do nào (thường là thao tác byte). 'size_t' có thể thay đổi tùy thuộc vào hệ thống của bạn và tùy chọn biên dịch –
' size_t' không được bảo đảm là 64bit – dtech
Nếu bạn sử dụng 'uint64_t' trên mục tiêu 32 bit, bạn có thể đạt được hiệu suất tối ưu. – sharptooth