2012-09-12 9 views
5

È possibile utilizzare push_back con la libreria Thrust? e che dire di un vettore di vettori? Vorrei utilizzare nella GPU ciò che nella CPU è:push_back utilizzando la libreria Thrust

vector< vector<int> > MyVector(100); 
... 
MyVector[i].push_back(j); 

C'è un modo per utilizzarlo come ad esempio:

thrust::device_vector<thrust::device_vector<int>> d_vec(4); 

e che dire la creazione di una serie di device_vectors? È possibile?

risposta

4
  1. Sì, thrust::device_vector ha un metodo push_back proprio come un std::vector.
  2. No, non è possibile avere un device_vector contenente device_vectors. Se hai bisogno di quel tipo di funzionalità in fase di spinta, ti consiglio di guardare a thrust::zip_iterator che può fornire "serie di strutture" come l'accesso a una serie di vettori o iteratori distinti.
+0

Quello che voglio è l'accesso a un 'device_vector dv' in questo modo:' dv [i] [j'] – Manolete

+0

@Manolete: Non credo sia possibile. – talonmies

+0

Ma potreste fare dv [i * width + j]. – harrism

Problemi correlati