我希望这个问题适用于stackoverflow...在存储原始数据字节(8位)时,使用
std::string
和使用 std::vector<char>
有什么区别。我从文件中读取二进制数据,并将这些原始字节存储在 std::string
中。这很有效,没有问题或异常。我的程序按预期工作。然而,其他程序员更喜欢使用 std::vector<char>
并建议我停止使用 std::string
,因为它对于原始字节不安全。那么,为什么使用 std::string
来保存原始数据字节是不安全的呢?我知道 std::string
最常用于存储 ASCII 文本,但一个字节就是一个字节,所以我不明白为什么会优先选择 std::vector<char>
。谢谢任何建议!
&s[0]
获取一个非const指向数据的指针,这很重要。但是现在已经不再是这样了。 - Pavel Minaev