【发布时间】:2016-12-11 12:40:02
【问题描述】:
SSO 解释说小字符串是在堆上分配的:好的,但是当在容器中构造时,这些内容不应该在堆栈上,因为容器可以在函数中创建并返回,而函数堆栈会过时。
所以我猜 SSO 不适用于 STL 容器,是吗?
【问题讨论】:
-
确实如此。小字符串直接存储在 std::string 对象中。如果字符串扩展为大于允许的大小,则将它们重新分配给堆(指向来自 std::string 的指针)。
标签: c++ performance stl containers