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_hint() 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_hint() là gì?
emplace_hint() là hàm built-in trong C++ STL, được định nghĩa trong header <map>. Hàm này chèn phần tử mới vào multimap với một vị trí gợi ý (hint). Khác với emplace(), ở đây ta truyền thêm một iterator chỉ vị trí gợi ý để chèn. Hàm này cũng tăng kích thước container lên 1.
Cú pháp
multimap_name.emplace_hint(iterator pos, Args& val);
Tham số
- pos – Iterator chỉ vị trí gợi ý chèn.
- 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_hint
mul.emplace_hint(mul.begin(), 1, 10);
mul.emplace_hint(mul.begin(), 2, 20);
mul.emplace_hint(mul.begin(), 3, 30);
mul.emplace_hint(mul.begin(), 1, 40);
mul.emplace_hint(mul.begin(), 4, 50);
mul.emplace_hint(mul.begin(), 5, 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 40
1 10
2 20
3 30
4 50
5 60