std::string的SSO小字符串优化
请解释std::string的SSO(Small String Optimization)机制。
回答
屠龙少年
SSO:短字符串(通常<=15字节)直接存储在string对象内部栈上,不分配堆内存。 GCC libstdc++:SSO缓冲区15字节+1字节长度,共16字节在对象内。 MSVC:16字节缓冲区。 优势:避免小字符串的堆分配开销。陷阱:sizeof(string)比预期大。
请解释std::string的SSO(Small String Optimization)机制。
SSO:短字符串(通常<=15字节)直接存储在string对象内部栈上,不分配堆内存。 GCC libstdc++:SSO缓冲区15字节+1字节长度,共16字节在对象内。 MSVC:16字节缓冲区。 优势:避免小字符串的堆分配开销。陷阱:sizeof(string)比预期大。