push_back是將一個元素拷貝(或移動)到容器的末尾,而emplace_back是直接在容器的末尾構造一個新的元素。
push_back需要調用元素的拷貝構造函數或移動構造函數,而emplace_back直接在原地構造元素,避免了額外的拷貝開銷。
emplace_back通常比push_back更高效,因為它避免了構造臨時對象的開銷。所以在需要構造新對象時,推薦使用emplace_back來代替push_back。
emplace_back在構造新元素時,可以直接傳入構造函數所需的參數,而push_back則需要傳入一個已經構造好的元素。
總的來說,如果你有一個已經構造好的元素,可以使用push_back;如果需要構造一個新元素并且不想額外拷貝對象,可以使用emplace_back。