いくつかのデータを配列に書き込むメソッド (myFunc) を作成しています。配列は、クラス (MyClass) のフィールドでなければなりません。例:
class MyClass {
public:
MyClass(int dimension);
~MyClass();
void myFunc();
protected:
float* _nodes;
};
MyClass::MyClass(int dimension){
_nodes = new float[dimension];
}
void MyClass::myFunc(){
for (int i = 0; i < _dimension; ++i)
_nodes[i] = (i % 2 == 0) ? 0 : 1;
}
メソッド myFunc はほぼ 10000 回呼び出され、9 ~ 10 秒近くかかります (他のメソッドを使用した場合)。
しかし、myFunc を次のように定義すると:
void MyClass::myFunc(){
float* test = new float[_dimension];
for (int i = 0; i < _dimension; ++i)
test[i] = (i % 2 == 0) ? 0 : 1;
}
私たちのプログラムははるかに高速に動作します - 2 ~ 3 秒近くかかります (10000 回近く呼び出した場合)。
前もって感謝します!