如何从 C++ 的 Map 中删除最后一个元素

如何从 C++ 的 Map 中删除最后一个元素

如果我们想要从 Map 中删除最后一个元素,可以使用以下方法:

1. 使用 prev(mp.end()):prev 函数的作用是从给定的迭代器往后退一步。因此,使用 prev 函数与 mp.end() 一起将返回一个指向 Map 的最后一个元素的迭代器。   
2. 实现代码: 
#include <bits/stdc++.h>
  
using namespace std;
  
int main()
{
  
    map<int, int> mp;
  
    // 添加一些元素到 mp 中
    mp[1] = 10;
    mp[2] = 20;
    mp[3] = 30;
  
    cout << "删除最后一个元素之前的 mp 内容:\n";
    for (auto it = mp.begin(); it != mp.end(); it++)
        cout << it->first << " ==> "
             << it->second << "\n";
  
    cout << "从 Map 中删除最后一个元素。\n";
    mp.erase(prev(mp.end()));
  
    cout << "删除最后一个元素之后的 mp 内容:\n";
    for (auto it = mp.begin(); it != mp.end(); it++)
        cout << it->first << " ==> "
             << it->second << "\n";
}  

输出:

删除最后一个元素之前的 mp 内容:
1 ==> 10
2 ==> 20
3 ==> 30
从 Map 中删除最后一个元素。
删除最后一个元素之后的 mp 内容:
1 ==> 10
2 ==> 20
  1. 使用 iterator–:将一个迭代器设置为 mp.end(),然后使用 iterator– 来到 Map 中的最后一个元素,然后使用 erase 函数将其删除。
    实现代码:
#include <bits/stdc++.h>
  
using namespace std;
  
int main()
{
  
    map<int, int> mp;
    // 添加一些元素到 mp 中
    mp[1] = 10;
    mp[2] = 20;
    mp[3] = 30;
  
    cout << "删除最后一个元素之前的 mp 内容:\n";
    for (auto it = mp.begin(); it != mp.end(); it++)
        cout << it->first << " ==> " 
             << it->second << "\n";
  
    cout << "从 Map 中删除最后一个元素。\n";
    auto it = mp.end();
    it--;
    mp.erase(it);
  
    cout << "删除最后一个元素之后的 mp 内容:\n";
    for (auto it = mp.begin(); it != mp.end(); it++)
        cout << it->first << " ==> "
             << it->second << "\n";
}  

输出:

删除最后一个元素之前的 mp 内容:
1 ==> 10
2 ==> 20
3 ==> 30
从 Map 中删除最后一个元素。
删除最后一个元素之后的 mp 内容:

1 ==> 10
2 ==> 20

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程