倍精度浮動小数点数の配列で計算を非常に高速に(ほとんどの場合、マルチスレッドで)実行できる外部ライブラリがあるとします。便宜上、私はオブジェクト指向の方法で私のコードを書くので、私はオブジェクトの配列を取得します。各オブジェクトには、double値を保持するプロパティがあります。パフォーマンスライブラリ用の効率的なラッパーを作成するための効率的な方法
double temp[N];
for i from 1 to N
temp[i] = objectArray[i].property;
end
しかし、これは一時配列を保持するために、時間と追加メモリをとります。強力な外部ライブラリを利用するために単純なアプローチは、このようなものです。それを行う良い方法はありますか?
これは一般的な質問ですが、基本的にC++でこれが欲しいです。
ライブラリが配列に対してアルゴリズムを実行し、配列のみを使用する場合は、これは単なる方法です。あなたのライブラリが別の方法でそれを実行できる場合は、このライブラリについてもう少し知る必要があります。 – Unda
私は考えることができるいくつかのオプションがあります:1.あなたのobjectArrayの隣にdouble []メンバーを保持し、常にそれらが同期していることを確認します。 2.より良い選択肢は、ダブルプロパティをdouble []を指すdouble *で置き換えることです。同期コード –
を書くことはできません。ライブラリー 'API'を知り、提案を思いつくのは難しいです。このため、 'STL'スタイルのインターフェースは、イテレータ*としてポインタの概念を一般化するという点で非常に強力です。あなたのライブラリがイテレータ*を受け入れるなら、これははるかに簡単です。 APIのようなものはありますか? – Galik