是否保证 std::vector 默认构造不会调用 new ?

2024-02-12

根据参考资料 http://en.cppreference.com/w/cpp/container/vector/vector一个简单的std::vector<T> vec;创建一个空容器(默认构造函数)。这是否保证没有动态内存分配? 或者一个实现可能会选择保留一些内存?

我知道,对于这个空构造函数,没有类型的构造T从 C++11 开始。 但是,我想知道是否也可以保证堆上不会分配任何内容。 IE。上面的行只是几行nullptr在堆栈/成员上。

我用vc140测试了它,它确实没有动态分配。


这是否保证没有动态内存分配?

不。然而,实现不分配内存是很常见的。我还没有看到这样做的标准库实现。

或者一个实现可能会选择保留一些内存?

可能会,但那是非典型的。

我知道,对于这个空构造函数,没有类型的构造T从 C++11 开始

也在 C++11 之前。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否保证 std::vector 默认构造不会调用 new ? 的相关文章

随机推荐