[英]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.