当我在类中创建一个std::string
成员变量时,是否在实例化时已经分配了默认内存?还是 std::string
延迟分配直到它被实际使用?
我目前正在使用 Visual Studio 2010,我注意到,当我创建一个空字符串时:
std::string s0;
std::string s1 = "";
两者都有容量 == 15 套。那么这是否意味着它已经分配了 15 个字节的内存?如果是,我可以阻止这种情况以便不分配内存吗?
这会是跨不同编译器的特定实现吗?
最佳答案
标准未指定空 std::string
的初始容量,并且取决于实现。
许多实现会分配大约 16 个字符的初始容量(是的,容量是指分配的内存)。
关于c++ - std::string 分配何时在初始化时发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32695489/