Хорошо, это будет глоток.
У меня есть указатель на сериализованный 2D-массив, кроме арифметики с указателем, я хочу создать вектор пар из (по существу) двух массивов (которые я планирую выбрать из 2D-массива). Однако мне нужно использовать библиотеку Thrust .
Это так, что я могу использовать thrust :: sort () для вектора, основываясь на значениях первого элемента пары. На устройстве.
Итак, мне нужен вектор (предпочтительно thrust :: device_vector) пар (размер которого, очевидно, соответствует размеру arrayOne и arrayTwo), где первый элемент пары - из arrayOne, а второй - из arrayTwo. Так что я могу затем использовать thrust :: sort () для сортировки по первому элементу пары.
Извините, из-за отсутствия кода, но я все еще пытаюсь выяснить тончайшие детали того, как это реализовать, отсюда и вопрос. Я буду публиковать свои попытки по мере продвижения. Заранее спасибо!
# UPDATE
Я думаю, что мне действительно повезло, и я нашел решение, так как я опубликовал вопрос (вроде, это лучшее решение, чем использование пары - что, в свою очередь, было предложено мне из предыдущего вопроса, который я задал),
Оказывается, 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*
Итак, теперь все, что мне нужно сделать, - это получить два thrust :: device_vectors из двух массивов (которые я должен получить из 2D-массива). Счастливый.