gpt4 book ai didi

c++ - 将 vector 转换为数组 - 是否有 'standard' 方法来执行此操作?

转载 作者:可可西里 更新时间:2023-11-01 14:52:48 27 4
gpt4 key购买 nike

我知道你可以这样做:&theVector[0],但这是标准的吗?这种行为总是有保证吗?

如果没有,是否有更好、更“hackish”的方法来做到这一点?

最佳答案

是的,这种行为是有保证的。虽然我不能引用它,但标准保证 vector 元素连续存储在内存中以允许这样做。

不过有一个异常(exception):

它不适用于 vector<bool>因为模板专门化。

http://en.wikipedia.org/wiki/Sequence_container_%28C%2B%2B%29#Specialization_for_bool

这个特化试图通过打包来节省内存 bools一起在位域中。然而,它打破了一些语义,因此,&theVector[0]vector<bool> 上将不起作用。

无论如何,vector<bool>广泛considered to be a mistake所以替代方法是使用 std::deque<bool>相反。

关于c++ - 将 vector 转换为数组 - 是否有 'standard' 方法来执行此操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8682533/

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