C++ STL 中的 map erase() 函数


在本文中,我们将讨论 C++ STL 中 map::erase() 函数的工作原理、语法和示例。

什么是 C++ STL 中的 Map?

Map 是关联式容器,它可以方便地存储由键值对组成的元素,并按照特定顺序排列。在 map 容器中,数据内部始终通过其关联的键进行排序。map 容器中的值可以通过其唯一的键访问。

什么是 map::erase()?

map::erase() 函数位于 <map&t; 头文件中。此函数用于从与其关联的 map 容器中移除一个或多个元素。我们也可以通过键来移除 map 中的元素。

此函数有效地将 map 容器的大小减少了从容器中移除的元素数量。

语法

map_name.erase(iterator pos);
map_name.erase(key_type &k);
map_name.erase(iterator start, iterator end);

参数

此函数接受以下

参数

  • pos − 一个迭代器,可以认为是要移除的元素的位置。
  • k − 我们想要从 map 容器中移除的键值。
  • start, end − 迭代器 ‘start’ 和 ‘end’ 用于指定要从 deque 容器中移除的范围的起始位置和结束位置。

返回值

如果删除成功,则函数返回 1,否则返回 0。

示例

输入

map<char, int> newmap;
newmap[‘a’]
= 1;
newmap[‘b’] = 2;
newmap.erase(b);

输出

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 is : \n";
   cout << "MAP_KEY\tMAP_ELEMENT\n";
   for (auto i = TP_Map.begin(); i!= TP_Map.end(); i++) {
      cout << i->first << "\t" << i->second << endl;
   }
   //to erase the map values
   TP_Map.erase(1);
   TP_Map.erase(2);
   cout<<"\n\nAfter erasing the element: \n";
   cout << "MAP_KEY\tMAP_ELEMENT\n";
   for (auto i = TP_Map.begin(); i!= TP_Map.end(); i++) {
      cout << i->first << "\t" << i->second << endl;
   }
   return 0;
}

输出

TP Map is:
MAP_KEY    MAP_ELEMENT
1             10
2             30
3             50
4             70
After erasing the element:
MAP_KEY    MAP_ELEMENT
3             50
4             70

示例

 在线演示

#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 is : \n";
   cout << "MAP_KEY\tMAP_ELEMENT\n";
   for (auto i = TP_Map.begin(); i!= TP_Map.end(); i++) {
      cout << i->first << "\t" << i->second << endl;
   }
   //to erase the map values
   auto var = TP_Map.find(1);
   TP_Map.erase(var);
   auto var_1 = TP_Map.find(2);
   TP_Map.erase(var_1);
   cout<<"\n\nAfter erasing the element: \n";
   cout << "MAP_KEY\tMAP_ELEMENT\n";
   for (auto i = TP_Map.begin(); i!= TP_Map.end(); i++) {
      cout << i->first << "\t" << i->second << endl;
   }
   return 0;
}

输出

TP Map is:
MAP_KEY    MAP_ELEMENT
1             10
2             30
3             50
4             70
After erasing the element:
MAP_KEY    MAP_ELEMENT
3             50
4             70

更新于:2020年4月15日

627 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告