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à ví dụ của hàm map::crbegin() và map::crend() trong C++ STL.
Map trong C++ STL là gì?
Map là container liên hợp, cho phép lưu trữ các phần tử được hình thành từ tổ hợp khóa (key) và giá trị ánh xạ (mapped value) theo một thứ tự xác định. Trong container map, dữ liệu luôn được sắp xếp nội bộ nhờ các khóa liên kết. Các giá trị trong map được truy xuất bằng khóa duy nhất của chúng.
map::crbegin() là gì?
map::crbegin() là hàm built-in trong C++ STL, được định nghĩa trong header
Cú pháp
Map_name.crbegin();
Tham số
Hàm không chấp nhận tham số nào.
Giá trị trả về
Hàm trả về iterator trỏ đến phần tử cuối cùng của container map.
Ví dụ
Đầu vào
map<char, int> newmap; newmap['a'] = 1; newmap['b'] = 2; newmap['c'] = 3; newmap.crbegin();
Đầu ra
c:3
map::crbegin
Ví dụ hoàn chỉnh
#include <bits/stdc++.h> using namespace std; int main() { map<int, int> TP_Map; TP_Map.insert({3, 50}); TP_Map.insert({2, 30}); TP_Map.insert({1, 10}); TP_Map.insert({4, 70}); //Sử dụng map::crbegin để lấy phần tử cuối auto temp = TP_Map.crbegin(); cout<<"Phần tử đầu tiên là: "<<temp->first << " -> " << temp->second; cout<<"\nTP Map là: \n"; cout << "KHOÁ\tGIÁ TRỊ\n"; for (auto i = TP_Map.crbegin(); i!= TP_Map.crend(); i++) { cout << i->first << "\t" << i->second << endl; } return 0; }Kết quả
Phần tử đầu tiên là: 4 -> 70 TP Map là: KHOÁ GIÁ TRỊ 4 70 3 50 2 30 1 10
map::crend() là gì?
map::crend() là hàm built-in trong C++ STL, được định nghĩa trong header
Cú pháp
newmap.crend();
Tham số
Hàm không chấp nhận tham số nào.
Giá trị trả về
Trả về iterator trỏ đến phần tử liền trước phần tử đầu tiên của container map liên hợp.
Ví dụ
Đầu vào
map<char, int> newmap; newmap['a'] = 1; newmap['b'] = 2; newmap['c'] = 3; newmap.crend();
Đầu ra
error
map::crend
Ví dụ hoàn chỉnh
#include <bits/stdc++.h> using namespace std; int main() { map<int, int> TP_Map; TP_Map.insert({3, 50}); TP_Map.insert({2, 30}); TP_Map.insert({1, 10}); TP_Map.insert({4, 70}); cout<<"\nTP Map là: \n"; cout << "KHOÁ\tGIÁ TRỊ\n"; for (auto i = TP_Map.crbegin(); i!= TP_Map.crend(); i++) { cout << i->first << "\t" << i->second << endl; } return 0; }Kết quả
TP Map là: KHOÁ GIÁ TRỊ 4 70 3 50 2 30 1 10