向量中字符串的内存分配

1 c++ vector c++11

如果向量始终提供连续的内存存储,那么编译器如何将内存分配给空的 std::string?

我有一个向量,我向其中推送了许多使用 std:string 作为私有成员的类。然后,我将对向量的引用作为参数传递给另一个方法。

堆中其他位置的字符串数据是否从向量的连续数组引用?

Moh*_*oun 5

为 分配内存std::string微不足道的

在内部,它将有某种指针,指向将存储实际字符串数据的内存块。size_t因此,为 std::string 分配内存只是为指针、 a或其他东西,也许还有几个原语分配空间的问题。

例如,如果你有一个std::vector<std::string>,向量很容易为 分配空间,std::string因为它们只是k一些常量的字节k。字符串数据不会参与本次分配。