Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

emplace so với insert trong C++ STL


Thao tác emplace tránh sao chép đối tượng không cần thiết và chèn hiệu quả hơn insert. Insert nhận tham chiếu đến một đối tượng.

Thuật toán

Begin
    Khai báo set.
    Dùng emplace() chèn pair.
    Dùng insert() chèn pair bằng make_pair().
    In set.
End

Ví dụ mã

#include<bits/stdc++.h>
using namespace std;
int main() {
    set<pair<int, char>> s;
    s.emplace(7, 'a');
    s.insert(make_pair(6, 'b'));
    for (auto it = s.begin(); it != s.end(); ++it)
        cout << " " << (*it).first << " " << (*it).second << endl;
    return 0;
}

Kết quả

7 a
6 b