我對size_t
的理解是,它足夠大,可以容納任何(整數)值,您可能認爲它需要保持。 (也許這是一個不好的解釋?)C++:是否有任何理由使用uint64_t,而不是size_t
例如,如果您使用類似for循環遍歷向量中的所有元素,size_t
通常是64位長(或至少在我的系統上)爲了它可以從vector.size()中保存所有可能的返回值。
或者至少,我認爲這是正確的?
因此,沒有任何理由使用,而不是B:
答:for(uint64_t i = 0; i < v.size(); ++ i)
B:for(size_t i = 0; i < v.size(); ++ i)
如果我錯了,我的解釋,或者你有更好的解釋,請隨時編輯。
編輯:我應該補充一點,我的理解是,size_t
行爲像一個正常的無符號整數 - 也許這是不正確的?
如果您需要確保您的int無論出於何種原因(通常是字節操作)都是64位。 'size_t'可以根據您的系統和編譯選項而有所不同 – 2015-02-23 23:37:09
'size_t'不能保證是64bit – dtech 2015-02-23 23:46:56
如果您在32位目標上使用'uint64_t',那麼性能可能會遠遠低於最佳性能。 – sharptooth 2016-03-15 07:04:22