Was ist ein guter sauberer Weg, um ein std::vector<int> intVec
zu konvertieren std::vector<double> doubleVec
. Oder allgemeiner, um zwei Vektoren konvertierbarer Typen zu konvertieren?
c++
stl
vector
type-conversion
Alan Turing
quelle
quelle
std::copy(...)
Funktion nutzen? Könnten Sie das der Antwort hinzufügen?copy(v_int.begin(), v_int.end(), back_inserter(v_float));
oderv_float.resize(v_int.size()); copy(v_int.begin(), v_int.end(), v_float.begin());
std::distance()
"Wenn es sich um einen Iterator mit wahlfreiem Zugriff handelt, verwendet die Funktion den Operator-, um dies zu berechnen. Andernfalls verwendet die Funktion den Erhöhungsoperator (Operator ++) wiederholt." In diesem Fall könnte die Anzahl der Elemente durch Subtrahieren der Iteratoren ermittelt werden. Ob die Standardbibliothek implementiert ist, um std :: distance für eine anfängliche Reserve () zu verwenden, ist eine andere Frage, aber godbolt.org/z/6mcUFh enthält zumindest einen Aufruf von std :: distance ().