[英]About serialize vector<int32_t> in a TCP buffer?
我想在緩沖區中添加向量的大小。 但是我不確切知道尺寸的類型是什么。 畢竟,std :: size_t不能為固定大小。 在我看來,我打算改用uint64_t。 然后,緩沖區將如下所示:
8 bytes length | 4 bytes element1 | 4 bytes element2 | ... |
現在的問題是uint64_t並不意味着std :: size_t。 任何更好的想法將不勝感激。
您可以使用任何需要的類型,只要它可以保存您正在使用的值即可。 由於它已經是size_t
,請保持這種方式。 確定要用於表示該值的字節數以及每個字節需要的值,並編寫代碼以正確地編碼/解碼每個字節。
你快到了 當前沒有平台使用size_t大於64位(通過實驗性100TBit光纖傳輸價值64位的int32需要花費幾天的時間)。 這些步驟是:
const uint64_t len = vec.length();
請注意,最后兩個步驟必須循環成千上萬個元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.