map容器的基本操作
map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有序的好处。STL的map底层是用红黑树实现的,查找时间复杂度是log(n);
1.插入元素(四种):
首先肯定要 #include<map>, 然后又定义一个
map<int,string> m;
pair<map<int,string>::iterator,bool> pair_1
(1) pair1 = m.insert(pair<int,string>(1,"OC1")); //保存insert()的返回值
(2) m.insert(make_pair(2,"OC2")); //插入失败,不会产生覆盖
(3) m.insert(map<int,string>::value_type(3,"OC3"));
(4) m[4] = "OC4" //假如key的值与m[ ? ]中的值相同,则改变其string
**遍历方法(2种):
1.
for (map<int,string>::iterator it = m.begin();it!=m.end();it++)
{
cout<<(*it).first<<endl;
cout<<(*it).second<<endl;
}
2.
while (!m.empty())
{
map<int,string>::iterator it = m.begin();
cout<<it->first<<"\t"<<it->second<<endl;
m.erase(it);
}
2.删除元素:
(1)指定元素删除:
map<int, int>::iterator it = m.begin();
for ( ; it != m.end();)
{
if (it->second == 1)
it = m.erase(it);//or m.erase(it++);
else
++it;
}
(2)查找出map中的value,而删除其key
map<int, string>::iterator it;
it = m.find(1);
m.erase(it);
(3)全删map:
m.earse(m.begin(),m.end())
emmmmmm,当然清空map也可以用 clear() ;
3.元素查找:
一般都是需要遍历
it = m.find(1);
if(it != m.end())
{
Cout<<”找到了”<<it->second<<endl;
it++;
}
else
{
Cout<<”没有找到”<<endl;
it++;
}
4.map的大小:
int s = m.size()
标签:
c++——map
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2021-01-20 JavaScript高级(一)