簡體   English   中英

在處理二進制數據塊時,您應該在C ++中使用什么數據類型?

[英]What data type should you use in C++ when working with binary data blocks?

雖然string應該用於處理字符串,但我想知道在處理數據塊時你應該在C ++中使用什么結構。

我問這個是因為使用一個參數而不是傳遞char* datasize_t size (或自定義結構)會更好。

std::vector<unsigned char>

或者,最好是,

std::vector<std::uint8_t>

(在C ++ 11中, uint8_t可以在<cinttypes>找到。較舊的編譯器,但不是MSVC,可能有C99頭<inttypes.h> 。如果您的數據是16位單元的序列,請使用uint16_t等。 )

如果在編譯時已知數據塊的大小,則std::array是合適的; 它浪費的空間比vector少。

STL中有許多容器,不僅僅是vector 查看並選擇適合您情況的產品。

上述解決方案很好,但考慮到這個解決方案可能會很好:

  1. STL中的bitset
  2. SGI中的bit_vector
  3. qTL中的qbitarray

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM