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::begin() và multimap::end() 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::begin() là gì?
multimap::begin() là hàm built-in trong C++ STL, được định nghĩa trong header <map>. Hàm này trả về iterator trỏ đến phần tử đầu tiên của multimap. Khi container rỗng, iterator không thể dereference.
Cú pháp
multimap_name.begin();
Tham số
Hàm này không nhận tham số nào.
Giá trị trả về
Trả về iterator trỏ đến phần tử đầu tiên của container.
Hàm multimap::end() là gì?
multimap::end() là hàm built-in trong C++ STL, được định nghĩa trong header <map>. Hàm này trả về iterator trỏ đến vị trí sau phần tử cuối cùng (past-the-end) của multimap. Khi container rỗng, iterator không thể dereference.
Thường dùng begin() và end() cùng nhau để duyệt qua toàn bộ container bằng cách xác định phạm vi [begin, end).
Cú pháp
multimap_name.end();
Tham số
Hàm này không nhận tham số nào.
Giá trị trả về
Trả về iterator trỏ đến vị trí past-the-end của container.
Ví dụ minh họa
#include <bits/stdc++.h>
using namespace std;
int main() {
multimap<int, int> mul;
// Chèn phần tử
mul.insert({1, 10});
mul.insert({2, 20});
mul.insert({3, 30});
mul.insert({4, 40});
mul.insert({5, 50});
// Lấy phần tử đầu tiên
auto i = mul.begin();
cout << "Phần tử đầu tiên trong multimap: ";
cout << "{" << i->first << ", " << i->second << "}\n";
// Duyệt multimap
cout << "\nCác phần tử trong multimap:\n";
cout << "KEY\tELEMENT\n";
for (auto it = mul.begin(); it != mul.end(); ++it) {
cout << it->first << '\t' << it->second << '\n';
}
return 0;
}
Kết quả
Phần tử đầu tiên trong multimap: {1, 10}
Các phần tử trong multimap:
KEY ELEMENT
1 10
2 20
3 30
4 40
5 50