Jaki jest dobry, czysty sposób konwertowania pliku std::vector<int> intVec
na std::vector<double> doubleVec
. Albo, bardziej ogólnie, przekonwertować dwa wektory typów zamiennych?
c++
stl
vector
type-conversion
Alan Turing
źródło
źródło
std::copy(...)
funkcji? Czy możesz dodać to do odpowiedzi?copy(v_int.begin(), v_int.end(), back_inserter(v_float));
lubv_float.resize(v_int.size()); copy(v_int.begin(), v_int.end(), v_float.begin());
std::distance()
„Jeśli jest to iterator o swobodnym dostępie, funkcja używa operatora- do obliczenia tego. W przeciwnym razie funkcja wielokrotnie używa operatora zwiększania (operator ++)”. Więc w tym przypadku ilość elementów można znaleźć odejmując iteratory. To, czy biblioteka standardowa jest zaimplementowana do używania std :: distance dla początkowej rezerwacji (), to inna kwestia, ale godbolt.org/z/6mcUFh zawiera przynajmniej wywołanie std :: distance ().