Ne dönüştürmek için iyi bir temiz yoldur std::vector<int> intVeciçin std::vector<double> doubleVec. Veya, daha genel olarak, dönüştürülebilir türlerdeki iki vektörü dönüştürmek için?
Ne dönüştürmek için iyi bir temiz yoldur std::vector<int> intVeciçin std::vector<double> doubleVec. Veya, daha genel olarak, dönüştürülebilir türlerdeki iki vektörü dönüştürmek için?
Yanıtlar:
std::vectorAralık yapıcısını kullanın :
std::vector<int> intVec;
std::vector<double> doubleVec(intVec.begin(), intVec.end());
copy(v_int.begin(), v_int.end(), back_inserter(v_float));veyav_float.resize(v_int.size()); copy(v_int.begin(), v_int.end(), v_float.begin());
std::distance()"Bu bir rastgele erişim yineleyicisiyse, işlev bunu hesaplamak için işleci kullanır. Aksi takdirde, işlev art arda artırma işlecini (işleç ++) kullanır." Yani bu durumda yineleyiciler çıkarılarak elemanların miktarı bulunabilir. Standart kitaplığın bir ilk rezerv () için std :: distance kullanılıp kullanılmayacağı başka bir sorudur, ancak godbolt.org/z/6mcUFh en azından std :: distance () çağrısı içerir.
std::copy(...)o zaman işlevi de kullanabilir misin? Bunu cevaba ekler misin?