gpt4 book ai didi

c++ - 标准是否需要 vector 重新分配和 vector::push_back 才能使用 placement new 和复制构造函数?

转载 作者:行者123 更新时间:2023-11-30 02:00:38 25 4
gpt4 key购买 nike

此时抛开移动语义,标准是否要求 vector 重新分配和vector::push_back 来使用placement new 和复制构造函数?如果是这样,标准中的什么地方是这样说的?

最佳答案

是也不是。与所有其他容器一样,Vector 需要使用 allocator_traits<allocator_type>::constructallocator_traits<allocator_type>::destroy (§23.2.1/3) 和使用分配器 (§23.2.1/7) 获取所有内存。如果你提供自定义分配器,您几乎可以做任何事情。这调用 ::operator new 需要默认分配器(§20.6.9.1/6) 并使用 placement new (§20.6.9.1/12)。

关于c++ - 标准是否需要 vector 重新分配和 vector::push_back 才能使用 placement new 和复制构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14940511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com