gpt4 book ai didi

c++ - vector 优于字符串的好处?

转载 作者:IT老高 更新时间:2023-10-28 22:37:54 25 4
gpt4 key购买 nike

这个问题与 this question 相关,但并不完全相同。 .

使用 std::vector<char> 有什么好处吗?而不是 std::string保存任意二进制数据,除了与可读性相关的问题?

即与字符串相比,使用 vector 执行哪些任务更容易/更高效/更好?

最佳答案

除了可读性(不应低估)之外,我还可以想到在 std::vector 上使用 std::string 时会出现一些小的性能/内存问题:

  • 一些现代 std::string 实现使用 small string optimization .如果存储的数据大于string的内部缓冲区,就会变成悲观化,降低复制、移动和swap1 并增加 sizeof() 没有任何好处。

  • 一个高效的 std::string 实现将始终分配比当前大小至少多 1 个字节来存储终止空值(不这样做需要在 operator[ ] 来处理 str[size()]).

我要强调的是,这两个问题都非常小;它们的性能成本很可能会在背景噪音中丢失。但你确实问过了。


1如果正在使用小字符串优化,这些操作需要在 size() 上进行分支,而在良好的 std::vector 中则不行 实现。

关于c++ - vector<char> 优于字符串的好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11358879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com