整数の配列を必要とする関数を呼び出したい。関数を呼び出すたびに整数の新しい配列を作成せずにこれを行うにはどうすればよいですか?
これが私がやりたいことです:
someFunction(new int[]{obj[0].getInt(), obj[1].getInt()});
これを行う代わりに:
int intArray[2] = {obj[0].getInt(), obj[1].getInt()};
someFunction(intArray);
整数の配列を必要とする関数を呼び出したい。関数を呼び出すたびに整数の新しい配列を作成せずにこれを行うにはどうすればよいですか?
これが私がやりたいことです:
someFunction(new int[]{obj[0].getInt(), obj[1].getInt()});
これを行う代わりに:
int intArray[2] = {obj[0].getInt(), obj[1].getInt()};
someFunction(intArray);
C++11 を使用できると仮定すると、実際の配列の代わりに(または)somefunction
を取るように定義して、次を使用できます。std::vector
std::vector const &
somefunction({obj[0].getInt(), obj[1].getInt()});
Java とは異なり、C++ では定期的に使用する必要はありません。new
実際、よく書かれたコードのほとんどでは、これはかなり珍しいことです。
余談ですが、一般的には C++ の組み込み配列を避けたいと考えていますが、C++11 ではそれが簡単になり、それらを使用する正当な理由はほとんどありません。