Ich habe eine std::vector<vector<double>>
Ich möchte eine Funktion ausfüllen. Ich muss einige dreidimensionale Koordinaten für einige Berechnungen später in meinem Programm speichern.mit push_back, um einen Vektor <double> in einen Vektor <vector <double>>
Meine Frage ist, wenn ich dies tun:
//in classdefinition
std::vector<std::vector<double>> data;
myFunc()
{
std::vector<double> temp;
temp.push_back(1);
temp.push_back(2);
temp.push_back(3);
data.push_back(temp);
temp.clear();
//new data
temp.push_back(2);
temp.push_back(3);
temp.push_back(4);
data.push_back(temp);
}
wird das Clearing und Nachfüllen von Temp die Werte in Daten beeinflussen?
Ich habe bereits diese http://www.cplusplus.com/reference/vector/vector/push_back/ gefunden, aber da die Erklärung lautet: "Der Inhalt von val wird kopiert (oder verschoben) auf das neue Element." Ich weiß nicht, was ich denken soll. Das klingt für mich nach einem Widerspruch.
Ich denke, es würde nicht viel Sinn machen, wenn die Variablen als Referenz übergeben werden, da sie, wie in meinem Fall, nur in einem begrenzten Umfang gültig sind. Habe ich recht mit meiner Annahme?
Oh Entschuldigung, ich habe nicht gesehen, dass ich C++ 98 anstelle von C++ 11 ausgewählt hatte, daher habe ich die überladene Funktion nicht gesehen und war verwirrt. – NiKoCh