foo()次のように、 aを宣言しstd::vectorて使用する関数があります。
int foo(int n, ... other args)
{
vector<int> myVett(n);
// foo is used for computation
}
main()何度も呼び出しfoo()ます:
int main()
{
//...
for(int ii = 0; ii < 1e3; ii++)
foo(n, ...)
//...
}
ループの繰り返しごとにfoo()メモリを割り当てないようにしたいと思います。myVettfor()
myVettinにメモリを割り当てmain()てから に渡すこともできますが、それfoo()は避けたいと思います (実際の例では、複数のベクトルmyVett1、myVett2などがあるため、それぞれを に渡したくありませんfoo())。
現時点では、次のように宣言myVettしfoo()ていstaticます。
static vector<int> myVett(n);
これでうまくいきますか?アプリケーションは少し速く実行されるようですが、キーワードstaticを正しく使用しているかどうかはわかりません。ありがとう!