オンライン (ストリーミング) データを含むプロジェクトを検討しています。そのデータのスライディング ウィンドウを操作したい。たとえば、ベクトルに 10 個の値を保持したいとします。値 11 が入ってきたら、値 1 を削除し、すべてをシフトしてから、値 10 があった場所に値 11 を配置します。
長い道のりは、次のようなものになります。
int n = 9;
thrust::device_vector<float> val;
val.resize(n+1,0);
// Shift left
for(int i=0; i != n-1; i++){
val[i] = val[i+1];
}
// add the new value to the last position
val[n] = newValue;
スラストでこれを行う「速い」方法はありますか?私が見ているプロジェクトには、この操作を同時に実行する必要がある約 500 のベクトルがあります。
ありがとう!