重複の可能性:
代わりに std::vector を使用して、配列/ポインター引数を取る関数を呼び出すことはできますか?
私は最近、次のようなものに出くわしました:
class X {
public: void foo(float* p, int elements);
};
= float 値の配列を期待するメソッド。
しかし、サンプルコードでは、これが彼らの使用方法でした:
std::vector<float> bar;
bar.push_back(42);
// ...
X x;
x.foo( &bar[0], (int)bar.size() );
std::vector
これが安全な方法なのか、それともたまたまのほとんどの実装で機能するのか疑問に思っています。(多分これは演算子のオーバーロードの問題ですか?私はまだこのようなものに自信がありません..)