[英]When to use std::vector<unsigned char> vs. std::vector<char>
其中一個最適合管理一個字符緩沖區,該緩沖區可以很容易地轉換為std :: string並傳遞給C函數並使用(即讀/寫)
std::vector<unsigned char>
std::vector<char>
char
的簽名取決於編譯器。 1
它可以表示unsigned char
或signed char
。 表示string
時使用的類型取決於編譯器 - 因此您應該使用char
來實現可移植性和清晰度。 如果這還不夠,那么寫char
時所需的打字就越少說服你嗎? :)
同樣,編譯器認為string
s的類型為char *
,它可以等同於unsigned char *
或signed char *
。 如果您要使用string
s,請使用std::vector<char>
。
1 char
是唯一具有此行為的類型。
char
與unsigned char
字符串更兼容。 字符串文字是char[]
, std::string
實際上是std::basic_string<char>
。
兩者都同樣適合。 如果這些是字符緩沖區,而不是字節,我會使用std :: vector <char>。
您可以使用std :: string(v.begin(),b.end())從任何類型的向量創建一個字符串;
char
, unsigned char
和signed char
是3種不同的類型。
unsigned char
或signed char
。 char
。 因此,您應該使用char
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.