-
map::erase()是C++ STL中的內置函數,用於從容器中擦除元素。它可用於擦除鍵,位於任何指定位置或給定範圍的元素。
- 擦除 key 的語法:
map_name.erase(key)
參數:該函數接受一個強製性參數 key ,該參數指定要在Map容器中擦除的 key 。
返回值:如果在映射中找到關鍵元素,則函數返回1,否則返回0。
以下示例程序旨在說明上麵的語法:
// C++ program to illustrate // map::erase(key) #include <bits/stdc++.h> using namespace std; int main() { // initialize container map<int, int> mp; // insert elements in random order mp.insert({ 2, 30 }); mp.insert({ 1, 40 }); mp.insert({ 3, 60 }); mp.insert({ 5, 50 }); // prints the elements cout << "The map before using erase() is : \n"; cout << "KEY\tELEMENT\n"; for (auto itr = mp.begin(); itr != mp.end(); ++itr) { cout << itr->first << '\t' << itr->second << '\n'; } // function to erase given keys mp.erase(1); mp.erase(2); // prints the elements cout << "\nThe map after applying erase() is : \n"; cout << "KEY\tELEMENT\n"; for (auto itr = mp.begin(); itr != mp.end(); ++itr) { cout << itr->first << '\t' << itr->second << '\n'; } return 0; }
輸出:The map before using erase() is : KEY ELEMENT 1 40 2 30 3 60 5 50 The map after applying erase() is : KEY ELEMENT 3 60 5 50
- 刪除頭寸的語法:
map_name.erase(iterator position)
參數:該函數接受一個強製性參數位置,該位置指定迭代器,該迭代器是要刪除元素的位置的參考。
返回值:該函數不返回任何內容。
以下示例程序旨在說明上麵的語法:
// C++ program to illustrate // map::erase(position) #include <bits/stdc++.h> using namespace std; int main() { // initialize container map<int, int> mp; // insert elements in random order mp.insert({ 2, 30 }); mp.insert({ 1, 40 }); mp.insert({ 3, 60 }); mp.insert({ 5, 50 }); // prints the elements cout << "The map before using erase() is : \n"; cout << "KEY\tELEMENT\n"; for (auto itr = mp.begin(); itr != mp.end(); ++itr) { cout << itr->first << '\t' << itr->second << '\n'; } // function to erase given position auto it = mp.find(2); mp.erase(it); auto it1 = mp.find(5); mp.erase(it1); // prints the elements cout << "\nThe map after applying erase() is : \n"; cout << "KEY\tELEMENT\n"; for (auto itr = mp.begin(); itr != mp.end(); ++itr) { cout << itr->first << '\t' << itr->second << '\n'; } return 0; }
輸出:The map before using erase() is : KEY ELEMENT 1 40 2 30 3 60 5 50 The map after applying erase() is : KEY ELEMENT 1 40 3 60
- 刪除給定範圍的語法:
map_name.erase(iterator position1, iterator position2)
參數:該函數接受兩個強製性參數,如下所述:
- position1–指定迭代器,該迭代器是要從中進行刪除的元素的引用。
- position2–指定迭代器,該迭代器是要進行刪除的元素的引用。
返回值:該函數不返回任何內容。它刪除給定範圍的迭代器中的所有元素。
以下示例程序旨在說明上麵的語法:
// C++ program to illustrate // map::erase() #include <bits/stdc++.h> using namespace std; int main() { // initialize container map<int, int> mp; // insert elements in random order mp.insert({ 2, 30 }); mp.insert({ 1, 40 }); mp.insert({ 3, 60 }); mp.insert({ 2, 20 }); mp.insert({ 5, 50 }); // prints the elements cout << "The map before using erase() is : \n"; cout << "KEY\tELEMENT\n"; for (auto itr = mp.begin(); itr != mp.end(); ++itr) { cout << itr->first << '\t' << itr->second << '\n'; } // function to erase in a given range // find() returns the iterator reference to // the position where the element is auto it1 = mp.find(2); auto it2 = mp.find(5); mp.erase(it1, it2); // prints the elements cout << "\nThe map after applying erase() is : \n"; cout << "KEY\tELEMENT\n"; for (auto itr = mp.begin(); itr != mp.end(); ++itr) { cout << itr->first << '\t' << itr->second << '\n'; } return 0; }
輸出:The map before using erase() is : KEY ELEMENT 1 40 2 30 3 60 5 50 The map after applying erase() is : KEY ELEMENT 1 40 5 50
相關用法
- C++ unordered_set erase()用法及代碼示例
- C++ list erase()用法及代碼示例
- C++ unordered_multiset erase()用法及代碼示例
- C++ set::erase用法及代碼示例
- C++ std::string::erase用法及代碼示例
- C++ unordered_map erase用法及代碼示例
- C++ multimap::erase()用法及代碼示例
- C++ multiset erase()用法及代碼示例
- C++ unordered_multimap erase用法及代碼示例
- C++ vector erase()、clear()用法及代碼示例
- C++ deque::clear()、deque::erase()用法及代碼示例
注:本文由純淨天空篩選整理自gopaldave大神的英文原創作品 map erase() function in C++ STL。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。