0

私はこれを以前に見ましたが、私には意味がありません:

void generate(std::vector<float> v)
{
 float f = generate_next_float();
 v.push_back(f);
}

v参照またはポインターとして送信された場合、それは理にかなっています。しかし、代わりに値によって送信されるため、関数にコピーされますよね? したがってv、関数が終了するとすぐに役に立たなくなり、これvは範囲外になり、削除されます。

私は正しいですか?

つまり、関数generate_next_float()は何かを行う可能性があるため、役に立たないわけではありませんが、vectorここでの使用は無意味に思えます。f依存せず、何も返されません。

4

3 に答える 3

0

はい、ベクトルに関する限り、generate()関数は無意味です。への変更vは呼び出し元には表示されません。

generate()の作者は、計画としてではなく、見落としとして参照を通過するのを逃したような気がします:-)

于 2013-04-05T00:37:22.923 に答える