3

よし、これで一口食べられるぞ。

シリアル化された 2D 配列へのポインターがあり、ポインター演算は別として、(本質的に) 2 つの配列 (2D 配列から取得する予定) からペアのベクトルを作成したいと考えています。ただし、Thrustライブラリを使用する必要があります。

これは、ペアの最初の要素の値に基づいて、ベクトルで Thrust::sort() を使用できるようにするためです。デバイス上。

したがって、ペアのベクトル (好ましくは、推力::device_vector) (明らかに、arrayOne と arrayTwo のサイズに一致するサイズ) が必要です。ペアの最初の要素は arrayOne から、2 番目は arrayTwo からのものです。そのため、ペアの最初の要素でソートするために、thrust::sort() を使用できます。

コードが不足していて申し訳ありませんが、これを実装する方法の詳細をまだ理解しようとしているため、質問です。試行錯誤しながら投稿していきます。前もって感謝します!

#アップデート

質問を投稿したので、実際に幸運になり、解決策を見つけたと思います(ペアを使用するよりも優れた解決策です-以前の質問から提案されました)、Thrustは実際に私が提供したものとまったく同じであることがわかりました'デフォルトで探しています:

#include <thrust/sort.h>
  ...
  const int N = 6;
  int    keys[N] = {  1,   4,   2,   8,   5,   7};
  char values[N] = {'a', 'b', 'c', 'd', 'e', 'f'};
  thrust::sort_by_key(keys, keys + N, values);
  // keys is now   {  1,   2,   4,   5,   7,   8}
  // values is now {'a', 'c', 'b', 'e', 'f', 'd'}

* http://code.google.com/p/thrust/wiki/QuickStartGuide#Fancy_Iteratorsから取得*

だから、今私がしなければならないのは、2 つの配列から 2 つの Thrust::device_vectors を取得することです (2D 配列から取得する必要があります)。幸せ。

4

1 に答える 1