2012-02-11 29 views
14

Trong khi string nên được sử dụng để làm việc với chuỗi, tôi muốn biết bạn nên sử dụng cấu trúc nào trong C++ khi làm việc với các khối dữ liệu.Bạn nên sử dụng loại dữ liệu nào trong C++ khi làm việc với các khối dữ liệu nhị phân?

Tôi hỏi điều này vì sẽ đẹp hơn khi sử dụng một thông số thay vì chuyển một số char* datasize_t size (hoặc cấu trúc tùy chỉnh).

Trả lời

12
std::vector<unsigned char> 

hay, tốt,

std::vector<std::uint8_t> 

(Trong C++ 11, uint8_t có thể được tìm thấy trong <cinttypes>. Trình biên dịch cũ, nhưng không MSVC, có thể có tiêu đề C99 <inttypes.h>. Nếu dữ liệu của bạn một chuỗi các đơn vị 16-bit, sử dụng uint16_t vv)

Nếu kích thước của các khối dữ liệu được biết đến tại thời gian biên dịch, std::array là phù hợp; nó lãng phí ít không gian hơn vector.

4

Có một số vùng chứa trong STL, không chỉ vector. Hãy nhìn và chọn những gì phù hợp với tình hình của bạn.

Các vấn đề liên quan