Hier ist mein Problem. Ich habe eine Funktion, die struct
als Eingabe nimmt, eine neue struct
allokiert und sie dann zurückgibt. Die struct
hat folgenden Inhalt
struct Data {
std::vector vector_vars;
std::string key;
std::map index;
};
vector_vars
hat eine Größe von 500-1000. custom_type ist relevant diese Klasse. Der index
hilft mir, auf verschiedene Data
Structuren über key
zuzugreifen. Dies ist die Funktion.
Data func(Data inputData) {
Data outputData;
//Vergleiche Werte mit inputData
//Ändere einige Werte in Data struct
return outputData
}
-
Benutze ich Stack-Allokation und gebe es zurück, damit es in die RHS kopiert wird. Ist dies ratsam, da das Kopieren möglicherweise viele Überkopfdaten erzeugt?
-
Kann ich eine Referenz/Zeiger auf die innerhalb einer Funktion allokierte Struktur zurückgeben, die auf dem Stack liegt?
-
Ist es ratsam, hier stattdessen dynamische Allokation zu verwenden (vielleicht mit
std::shared_ptr
) für Effizienz?