零.前言
本篇适合有一定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;
}