Aquacolor

Aquacolor



cpp【6】std::uninitialized_xxx

Gumdrop · 2026-06-08 · 4浏览 · 未分类


有size和capacity的容器,size指已经有值的数据大小,而capacity是T* data被allocator分配的空间大小。

常识可以知道size以外capacity以内的部分不具有已知值,被分配,未零初始化。

左值是指针类型时,赋值只能改指针的指向;左值是常规类型时,出现了无谓的零初始化,这个方法被描述为placement new。

可以用new(ptr) T(args)的方法,也可以用allocator,但是allocator在不同cpp版本上差别很大。

std::uninitialized_xxx实现了将对象操作到未初始化的空间的功能,可以看作是能在左值对象还不存在时的赋值等操作。可以避免无谓的零初始化。



©

comment 评论区

添加新评论

face表情



  • ©2026 bilibili.com

textsms
内容不能为空
昵称不能为空
email
邮件地址格式错误
web
beach_access
验证码不能为空
keyboard发表评论


star_outline 咱快来抢个沙发吧!




©2026 Aquacolor

鄂ICP备2024059763号-1
公安备案图标鄂公网安备42011102005556号


Theme Romanticism2.2 by Akashi
Powered by Typecho