Hej!
Potrzebuję napisać funkcję która obrobi w pewien sposób 2 wektory i zwróci wynik:
void liczaj(const QVector<double> &a, const QVector<double> &b){
// licze
}
Dane przekazuję przez referencję, aby niepotrzebnie kopiować/mielić w pamięci. Pytanie: jak zwrócić wynik?
Mógłbym to zrobić przez argument np:
void liczaj(const QVector<double> &a, const QVector<double> &b, QVector<double> &c){
// licze
}
Lecz wydaje mi się że są lepsze(nowsze) metody, żeby zwrócić np. przez return.
Problem też taki, że przekazując w ten sposób przez argument, nie wiem jak ustawić konkretną wielkość, brakuje mi takiego:
c.setSize(100); // tylko funkcja liczaj będzie znać długość wektora, będzie obliczana na podstawie danych wejściowych
Boję się zastosować tego rozwiązania:
c.clear();
for(int i = 0; i<n; ++i){
c.append(12); // przykład
}
Ponieważ myślę, że ciągle będzie jakieś alokowanie i zwalnianie pamięci.
Potrzebuję mieć funkcję zoptymalizowaną pod kątem prędkości wykonywania.