พิจารณาสถานการณ์ต่อไปนี้:
std::vector<int> A;
std::vector<int> B;
std::vector<int> AB;
ฉันต้องการให้ AB
มีเนื้อหาของ A
และเนื้อหาของ B
อยู่ในลำดับเดียวกัน
แนวทางที่ 1:
AB.reserve( A.size() + B.size() ); // preallocate memory
AB.insert( AB.end(), A.begin(), A.end() );
AB.insert( AB.end(), B.begin(), B.end() );
แนวทางที่ 2:
std::vector<int> AB ( A.begin(), A.end() ); // calling constructor
AB.insert ( AB.end(), B.begin(), B.end() );
วิธีใดวิธีหนึ่งข้างต้นมีประสิทธิภาพมากกว่า ทำไม มีวิธีอื่นที่มีประสิทธิภาพมากกว่าหรือไม่?