当前位置: 首页 > article >正文

[leetcode](适合有一定基础需要刷题的宝宝)map STL的增删查改

零.前言

 本篇适合有一定C++基础,需要快速了解增删查改的操作用法,去刷leetcode的BB.

一.map的构造和插入元素 

#include<map>
#include<iostream>
//#include<pair>pair不需要引入头文件

using namespace std;

int main()
{
    map<int, string> m ;//map的构造
    pair<int ,string> p;
    //map的插入元素
    m.insert({ 1,"XiaoZhang" });
    m.insert(pair<int, string>{2, "XiaoLi"});
    m.insert(map<int, string>::value_type(3, "xiaowen"));

    map<int, string>::value_type vmp{ 4,"XiaoDu" };
    m.insert(vmp);

    m[5] = "XiaoLin";

    return 0;
}

二.遍历元素

//map的构造
auto it = m.begin();
while (it != m.end())
{
    cout << (*it).first << " " << (*it).second << endl;
    it++;
}

三.查找特定元素

//查找键值为3的value(学号为3的stu)
auto it3 = m.find(3);
if (it3 != m.end())
{
    cout << (*it3).second << endl;
}

//查找第一个大于3的value
auto itGreater3 = m.upper_bound(3);
if (itGreater3 != m.end())
{
    cout << (*itGreater3).second << endl;
}

//查找第一个大于等于3的value
auto itGreaterOrEuqal3 = m.lower_bound(3);
if (itGreaterOrEuqal3 != m.end())
{
    cout << (*itGreaterOrEuqal3).second << endl;
}

四.修改元素

//修改第4个元素的value
auto it4 = m.find(4);
if (it4 != m.end())
{
    m[4] = "XiaoLong";
    cout << "The modify value is " << (*it4).first << " " << (*it4).second << endl;
}

五.删除元素

//删除第四个元素
auto it4Erase = m.find(4);
if (it4Erase != m.end())
{
    m.erase(it4Erase);
    cout << "This Key has been earsed";
}

六.全代码

#include<map>
#include<iostream>
//#include<pair>

using namespace std;

int main()
{
    map<int, string> m ;//map的构造
    pair<int ,string> p;
    //map的插入元素
    m.insert({ 1,"XiaoZhang" });
    m.insert(pair<int, string>{2, "XiaoLi"});
    m.insert(map<int, string>::value_type(3, "xiaowen"));

    map<int, string>::value_type vmp{ 4,"XiaoDu" };
    m.insert(vmp);

    m[5] = "XiaoLin";

    //map的构造
    auto it = m.begin();
    while (it != m.end())
    {
        cout << (*it).first << " " << (*it).second << endl;
        it++;
    }

    //查找键值为3的value(学号为3的stu)
    auto it3 = m.find(3);
    if (it3 != m.end())
    {
        cout << (*it3).second << endl;
    }

    //查找第一个大于3的value
    auto itGreater3 = m.upper_bound(3);
    if (itGreater3 != m.end())
    {
        cout << (*itGreater3).second << endl;
    }
    
    //查找第一个大于等于3的value
    auto itGreaterOrEuqal3 = m.lower_bound(3);
    if (itGreaterOrEuqal3 != m.end())
    {
        cout << (*itGreaterOrEuqal3).second << endl;
    }

    //修改第4个元素的value
    auto it4 = m.find(4);
    if (it4 != m.end())
    {
        m[4] = "XiaoLong";
        cout << "The modify value is " << (*it4).first << " " << (*it4).second << endl;
    }

    //删除第四个元素
    auto it4Erase = m.find(4);
    if (it4Erase != m.end())
    {
        m.erase(it4Erase);
        cout << "This Key has been earsed";
    }

    return 0;
}


http://www.kler.cn/a/508488.html

相关文章:

  • Web自动化:Cypress 测试框架概述
  • vue编写一个可拖动的模块,并可以和任何其他组件组合使用
  • AI刷题-小R的随机播放顺序、不同整数的计数问题
  • Redis超详细入门教程(基础篇)
  • 【C++基础】enum,union,uint8_t,static
  • 【蓝桥杯】Python算法——求逆元的两种算法
  • 怎么修复损坏的U盘?而且不用格式化的方式!
  • (一)相机标定——四大坐标系的介绍、对应转换、畸变原理以及OpenCV完整代码实战(C++版)
  • MySQL下载安装及配置
  • mysql-5.7.18保姆级详细安装教程
  • 数据仓库复用性:业务需求复用性设计
  • Mac 使用 GVM 管理多版本 Go 环境
  • Big-endian(大端字节序)与Little-endian(小端字节序)区别
  • 【数据库】MySQL数据库SQL语句汇总
  • 基于微信小程序的电子点菜系统设计与实现(KLW+源码+讲解)
  • MySQL 与 Redis 数据一致性 2
  • Python使用seleniumwire接管Chrome查看控制台中参数
  • Debian 设定 tomcat 定时重启
  • LabVIEW时域近场天线测试
  • Django创建项目速成
  • ESP32云开发二( http + led + lcd)
  • Whisper-Medium 模型:音频转文本的原理、实践与硬件推荐
  • 深度学习-86-大模型训练之为什么要设计成预训练和微调两个阶段
  • 第十三章:数据库技术
  • GPT-5 传言:一场正在幕后发生的 AI 变革
  • OpenHarmony-Graphic_2d子系统