【发布时间】:2012-08-27 14:44:34
【问题描述】:
可能重复:
Can I call functions that take an array/pointer argument using a std::vector instead?
我最近遇到了这样的事情:
class X {
public: void foo(float* p, int elements);
};
= 一个需要浮点值数组的方法。
但在示例代码中,这是他们使用它的方式:
std::vector<float> bar;
bar.push_back(42);
// ...
X x;
x.foo( &bar[0], (int)bar.size() );
现在我想知道这是一种安全的方法,还是恰好适用于std::vector 的大多数实现? (也许这是一个运算符重载的事情?我对这些东西还没有那么自信..)
【问题讨论】:
-
请注意,它现在有一个
data()函数用于此目的。