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::erase() 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::erase() là gì?
map::erase() là hàm nằm trong header
Hàm này giảm kích thước container map hiệu quả theo số lượng phần tử bị xóa khỏi container.
Cú pháp
map_name.erase(iterator pos); map_name.erase(key_type &k); map_name.erase(iterator start, iterator end);
Tham số
Hàm chấp nhận các tham số sau:
tham số
- pos – Iterator có thể coi là vị trí của phần tử cần xóa.
- k – Giá trị khóa cần xóa khỏi container map.
- start, end – Iterator 'start' và 'end' dùng để chỉ vị trí bắt đầu và kết thúc của phạm vi muốn xóa khỏi container deque.
Giá trị trả về
Nếu xóa thành công hàm trả về 1, ngược lại 0.
Ví dụ
Đầu vào
map<char, int> newmap; newmap['a'] = 1; newmap['b'] = 2; newmap.erase(b);
Đầu ra
a
Ví dụ hoàn chỉnh (xóa bằng khóa)
#include <bits/stdc++.h> using namespace std; int main() { map<int, int> TP_Map; TP_Map.emplace(3, 50); TP_Map.emplace(2, 30); TP_Map.emplace(1, 10); TP_Map.emplace(4, 70); cout<<"TP Map là: \n"; cout << "KHOÁ\tGIÁ TRỊ\n"; for (auto i = TP_Map.begin(); i!= TP_Map.end(); i++) { cout << i->first << "\t" << i->second << endl; } //Xóa phần tử map TP_Map.erase(1); TP_Map.erase(2); cout<<"\n\nSau khi xóa phần tử: \n"; cout << "KHOÁ\tGIÁ TRỊ\n"; for (auto i = TP_Map.begin(); i!= TP_Map.end(); i++) { cout << i->first << "\t" << i->second << endl; } return 0; }Kết quả
TP Map là: KHOÁ GIÁ TRỊ 1 10 2 30 3 50 4 70 Sau khi xóa phần tử: KHOÁ GIÁ TRỊ 3 50 4 70
Ví dụ khác (xóa bằng iterator)
#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<<"TP Map là: \n"; cout << "KHOÁ\tGIÁ TRỊ\n"; for (auto i = TP_Map.begin(); i!= TP_Map.end(); i++) { cout << i->first << "\t" << i->second << endl; } //Xóa phần tử map auto var = TP_Map.find(1); TP_Map.erase(var); auto var_1 = TP_Map.find(2); TP_Map.erase(var_1); cout<<"\n\nSau khi xóa phần tử: \n"; cout << "KHOÁ\tGIÁ TRỊ\n"; for (auto i = TP_Map.begin(); i!= TP_Map.end(); i++) { cout << i->first << "\t" << i->second << endl; } return 0; }Kết quả
TP Map là: KHOÁ GIÁ TRỊ 1 10 2 30 3 50 4 70 Sau khi xóa phần tử: KHOÁ GIÁ TRỊ 3 50 4 70