gpt4 book ai didi

c++ - 有没有办法从STL获得一个无开销的原始内存容器

转载 作者:行者123 更新时间:2023-11-28 01:32:00 25 4
gpt4 key购买 nike

<分区>

std::vector<unsigned char>std::vector<char>是明显的候选者(取决于上下文),事实上,大多数示例代码都使用它们:

https://stackoverflow.com/a/18816228/4442671

但是,由于 std::vector必须构建所有对象,你最终会做一个无关的 memset() ,与简单的动态分配相比:https://godbolt.org/g/TKkwmp

这没什么大不了的,但它仍然是无缘无故执行的额外 O(N) 工作,所以感觉像是打破了“如果不需要就不要付钱”的原则.

围绕 new[] 编写一个完整的 RAII 包装器并不难,但我不禁想知道:

有没有办法从 STL 中获取包含连续未初始化内存的动态容器,还是我必须重新发明那个轮子?

编辑: @Someprogrammerdude 的 reserve() 我真的很困惑建议获得如此多的选票。谁能解释一下取消引用大小为 0 的 vector 的保留内存并不是一个糟糕的主意吗?

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