4

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()は避けたいと思います (実際の例では、複数のベクトルmyVett1myVett2などがあるため、それぞれを に渡したくありませんfoo())。

現時点では、次のように宣言myVettfoo()ていstaticます。

static vector<int> myVett(n);

これでうまくいきますか?アプリケーションは少し速く実行されるようですが、キーワードstaticを正しく使用しているかどうかはわかりません。ありがとう!

4

0 に答える 0