簡體   English   中英

何時使用std :: vector <unsigned char>與std :: vector <char>

[英]When to use std::vector<unsigned char> vs. std::vector<char>

其中一個最適合管理一個字符緩沖區,該緩沖區可以很容易地轉換為std :: string並傳遞給C函數並使用(即讀/寫)

std::vector<unsigned char> 
std::vector<char>

char的簽名取決於編譯器。 1

它可以表示unsigned charsigned char 表示string時使用的類型取決於編譯器 - 因此您應該使用char來實現可移植性和清晰度。 如果這還不夠,那么寫char時所需的打字就越少說服你嗎? :)

同樣,編譯器認為string s的類型為char * ,它可以等同於unsigned char *signed char * 如果您要使用string s,請使用std::vector<char>

1 char是唯一具有此行為的類型。


參考

1 默認情況下是char簽名還是未簽名?

charunsigned char字符串更兼容。 字符串文字是char[]std::string實際上是std::basic_string<char>

兩者都同樣適合。 如果這些是字符緩沖區,而不是字節,我會使用std :: vector <char>。

您可以使用std :: string(v.begin(),b.end())從任何類型的向量創建一個字符串;

charunsigned charsigned char是3種不同的類型。

  • 在處理數字時使用unsigned charsigned char
  • 處理字符串時使用常規char

因此,您應該使用char

暫無
暫無

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

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