Bootstrap

[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;
}

;