为了账号安全,请及时绑定邮箱和手机立即绑定

向量元素保证是连续的吗?

向量元素保证是连续的吗?

C++
慕妹3146593 2019-06-21 15:38:23
向量元素保证是连续的吗?我的问题很简单:STD:向量元素是否保证是连续的?按照顺序,我是否可以使用指向std:Vectoral的第一个元素的指针作为C-数组?如果我的记忆很好的话,C+标准并没有提供这样的保证。然而,如果这些元素不是连续的,那么病媒的要求几乎是不可能满足的。有人能澄清这一点吗?例子:std::vector<int> values;// ... fill up valuesif( !values.empty() ){     int *array = &values[0];     for( int i = 0; i < values.size(); ++i )     {         int v = array[i];         // do something with 'v'     }}
查看完整描述

3 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

该标准实际上保证了vector在记忆中是连续的&a[0]可以传递给C函数,该函数需要一个数组。

这条规则的例外是vector<bool>每只使用一位bool因此,尽管它确实具有连续内存,但它不能用作bool*(人们普遍认为这是一个错误的优化和错误)。

顺便问一下,你为什么不使用迭代器呢?这就是它们的用途。


查看完整回答
反对 回复 2019-06-21
  • 3 回答
  • 0 关注
  • 434 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信