เป็นวิธีการทำความสะอาดที่ดีที่จะแปลงอะไรไปstd::vector<int> intVec
std::vector<double> doubleVec
หรือโดยทั่วไปแล้วในการแปลงเวกเตอร์สองประเภทที่เปลี่ยนแปลงได้?
เป็นวิธีการทำความสะอาดที่ดีที่จะแปลงอะไรไปstd::vector<int> intVec
std::vector<double> doubleVec
หรือโดยทั่วไปแล้วในการแปลงเวกเตอร์สองประเภทที่เปลี่ยนแปลงได้?
คำตอบ:
ใช้ตัวstd::vector
สร้างช่วง:
std::vector<int> intVec;
std::vector<double> doubleVec(intVec.begin(), intVec.end());
copy(v_int.begin(), v_int.end(), back_inserter(v_float));
หรือv_float.resize(v_int.size()); copy(v_int.begin(), v_int.end(), v_float.begin());
std::distance()
"ถ้าเป็นตัวทำซ้ำการเข้าถึงโดยสุ่มฟังก์ชันจะใช้ตัวดำเนินการเพื่อคำนวณสิ่งนี้มิฉะนั้นฟังก์ชันจะใช้ตัวดำเนินการเพิ่ม (ตัวดำเนินการ ++) ซ้ำ ๆ " ดังนั้นในกรณีนี้จำนวนขององค์ประกอบสามารถพบได้โดยการลบตัววนซ้ำ ว่าไลบรารีมาตรฐานถูกนำไปใช้เพื่อใช้ std :: distance สำหรับการสำรองเริ่มต้น () หรือไม่ก็เป็นอีกคำถามหนึ่ง แต่อย่างน้อยgodbolt.org/z/6mcUFhก็มีการเรียกใช้ std :: distance ()
std::copy(...)
ฟังก์ชันนี้ได้หรือไม่? คุณช่วยเพิ่มคำตอบนั้นได้ไหม