【发布时间】:2012-03-04 14:36:49
【问题描述】:
我有一个函数,它接受int * 并修改传入的数组。我提前知道它将访问多少个元素。假设这是m 值。
如果我在 vector<int> 上调用 reserve(m) 然后将指针 data() 发送到函数会发生什么?
我的猜测是,如果我随后从指针访问数据,就好像它是一个数组一样,那么这样做 可能 工作,但是如果我尝试使用 @ 从向量中检索这些数据987654326@ 向量的大小不会更新,我会有问题。所以我应该只使用resize(m) 来做到这一点。
【问题讨论】:
-
你能给我们看一些代码而不是解释代码的作用吗?
-
我会说你的猜测是正确的,只需使用
resize。 -
为什么你想这样做?
-
是的,使用 resize()。你为什么还要问这个,你看到 resize() 有什么缺点吗?
-
data()不是std::vector(2003 标准)的一部分