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

Hàm map::erase() 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à 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 dùng để xóa một phần tử hoặc một phạm vi phần tử từ container map liên hợp. Ta cũng có thể xóa phần tử của map bằng khóa của nó.

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