Sto cercando di creare un metodo di classe che restituirà un vettore std :: e sono un po 'confuso sul modo migliore per farlo.Restituire un approccio std :: vector - right
L'approccio che ho usato è quello di definire il seguente metodo:
std::vector<double>* GetBins(void);
e nel metodo, allocare una nuova std :: vector, che riempio con i dati. Sto tornando un puntatore a questo cioè.
std::vector<double>* Frequency::GetBins(void) {
std::vector<double> *rtnVec = new std::vector<double>();
for (_itMap = _mapFreq.begin(); _itMap != _mapFreq.end(); _itMap++) {
rtnVec->push_back((*_itMap).first);
}
return rtnVec;
}
(_itMap è un iteratore classe definita).
Nel mio main.cpp, ho fatto quanto segue:
std::vector<double>* myBins;
myBins = myFreq3->GetBins();
delete myBins;
So che con questo approccio, ho intenzione di ottenere un puntatore penzoloni a meno che non posso cancellare il puntatore nel codice main.cpp , quindi è già un po 'pericoloso'. Qual è il modo migliore per restituire un nuovo std :: vector da un metodo di classe?
Grazie ragazzi Pete
Perché è necessario restituire qualcosa? Crea un'interfaccia 'BinsProcessor' e chiedi 'Frequenza' per elaborare i bin con il tuo' CustomBinsProcessor'. –