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

Hàm multimap::emplace() trong C++ STL

Trong bài viết này, chúng ta sẽ thảo luận về cách hoạt động, cú pháp và các ví dụ của hàm multimap::emplace() trong C++ STL.

Multimap trong C++ STL là gì?

Multimap là container liên kết, tương tự như map. Nó lưu trữ các phần tử dạng cặp key-value theo thứ tự cụ thể. Multimap cho phép nhiều phần tử có cùng một key. Dữ liệu luôn được sắp xếp theo key.

Hàm multimap::emplace() là gì?

multimap::emplace() là hàm built-in trong C++ STL, được định nghĩa trong header <map>. Hàm này xây dựng và chèn phần tử mới vào multimap. Hàm này thực chất tăng kích thước container lên 1.

Hàm này tương tự hàm insert, nhưng emplace xây dựng trực tiếp phần tử trong container thay vì copy/move object.

Cú pháp

multimap_name.emplace(Args& val);

Tham số

  • val – Phần tử cần chèn.

Giá trị trả về

Trả về iterator trỏ đến vị trí phần tử được chèn.

Ví dụ minh họa

#include <bits/stdc++.h>
using namespace std;

int main() {
    // Tạo container
    multimap<int, int> mul;
    
    // Chèn bằng emplace
    mul.emplace(1, 10);
    mul.emplace(4, 20);
    mul.emplace(5, 30);
    mul.emplace(2, 40);
    mul.emplace(3, 50);
    mul.emplace(4, 60);
    
    cout << "\nCác phần tử trong multimap:\n";
    cout << "KEY\tELEMENT\n";
    for (auto i = mul.begin(); i != mul.end(); i++) {
        cout << i->first << "\t" << i->second << endl;
    }
    
    return 0;
}

Kết quả

Các phần tử trong multimap:
KEY	ELEMENT
1	10
2	40
3	50
4	20
4	60
5	30