C++容器选型:如何选择std::vector<char>与std::string?
std::string与std::vector<char>选型参考 做这类存储容器选型时,可以从以下几个实际维度判断:
- 空字符兼容能力:不用担心数据流中间带
\0就不能用std::string,这种场景下std::string依然是合法可用的,不会像C风格字符串一样碰到\0就截断。 - 操作方法匹配度:
std::string自带大量专门的字符串处理方法,比如查找、拼接、截取子串这类常用操作可以直接调用,不用自己重复实现;std::vector<char>作为通用顺序容器,没有提供这类字符串专属的操作接口。 - 数据语义适配性:如果待存储的内容是没有文本属性的纯二进制流,优先选
std::vector<char>更合适,语义上更清晰,也能避免其他维护者误把二进制数据当文本处理。
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

