gpt4 book ai didi

c++ - std::string 容量大小

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:08:32 25 4
gpt4 key购买 nike

字符串的容量大小总是15的倍数吗?

例如:在所有情况下容量都是15

string s1 = "Hello";

string s2 = "Hi";

string s3 = "Hey";

还是随机的?

最佳答案

Is the capacity size of string always a multiple value of 15?

没有;关于 std::string 容量的唯一保证是 s.capacity() >= s.size()

一个好的实现可能会以指数方式增加容量,以便每次需要重新分配底层数组时它的大小都会加倍。这对于 std::vector 是必需的,因此 push_back 可以具有摊销常数时间复杂度,但对于 std::string 没有这样的要求.

此外,std::string 实现可以执行小字符串优化,其中小于一定数量字符的字符串存储在 std::string 对象本身中,不在动态分配的数组中。这很有用,因为许多字符串都很短并且动态分配可能很昂贵。如果存储字符串所需的字节数小于将指针存储到动态分配的缓冲区所需的字节数,通常会执行小字符串优化。

我不知道您的特定实现是否执行小字符串优化。

关于c++ - std::string 容量大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5032577/

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