Dato un std::vector
che contiene oggetti di MyClass. Come posso creare un altro vettore che contiene solo i dati di un membro di MyClass utilizzando std::copy
? Suppongo che avrei dovuto implementare una custom back_inserter
ma non sono riuscito a capire come farlo finora.Inseritore personalizzato per std :: copy
struct MyClass {
int a;
}
std::vector<MyClass> vec1;
// I could copy that to another vector of type MyClass using std::copy.
std::copy(vec1.begin(), vec1.end(); std::back_inserter(someOtherVec)
// However I want just the data of the member a, how can I do that using std::copy?
std::vector<int> vec2;
'std :: copy' è per la copia semplice, senza modificare gli elementi. 'std :: transform' consente di applicare una trasformazione a ciascun elemento e quindi di memorizzare l'output della trasformazione. Che è esattamente quello che vuoi :) – jalf
wow molte risposte, grazie! – Nils