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()
メモリを割り当てないようにしたいと思います。myVett
for()
myVett
inにメモリを割り当てmain()
てから に渡すこともできますが、それfoo()
は避けたいと思います (実際の例では、複数のベクトルmyVett1
、myVett2
などがあるため、それぞれを に渡したくありませんfoo()
)。
現時点では、次のように宣言myVett
しfoo()
ていstatic
ます。
static vector<int> myVett(n);
これでうまくいきますか?アプリケーションは少し速く実行されるようですが、キーワードstatic
を正しく使用しているかどうかはわかりません。ありがとう!