- C23panweiming's blog
multimap教程
- 2024-10-10 13:40:33 @
介绍
multimap是一个 一个键对应多个值的容器
一键多值
类似于邻接表
创建multimap
与map同一头文件
#include<map>
创建一个multimap
multimap<键的类型,值的类型[,排序方式]>m;
添加元素
m.insert({键,值});
删除元素
删除key1的所有键值对
m.erase("key1");
删除key1的第一个键值对
m.erase(m.equal_range("key1").first);
删除key1的第二个键值对
m.erase(++m.equal_range("key1").first);
删除key1的第三个键值对
m.erase(++ ++m.equal_range("key1").first);
删除所有键值对
m.clear();
访问元素(C++11)
遍历全部键值对
for(auto i:m)
{
cout<<i.first<<" "<<i.second<<"\n";
}
遍历全部键值对
for(auto i=m.begin();i!=m.end();i++)
{
cout<<i->first<<" "<<i->second<<"\n";
}
反序遍历全部键值对
for(auto i=m.rbegin();i!=m.rend();i++)
{
cout<<i->first<<" "<<i->second<<"\n";
}
遍历key1的所有值
for(auto i=m.equal_range("key1").first;i!=m.equal_range("key1").second;i++)
{
cout<<i->first<<" "<<i->second<<"\n";
}
常用函数
返回键为key1的迭代器(遍历key1的所有值的迭代器)
equal_range(key1)
返回元素个数
size()
返回键为key1的元素个数
count(key1)
判空
empty()
返回第一个键为key1的指针
find(key1)
返回第一个不小于key1的指针
lower_bound(key1)
返回第一个大于key1的指针
upper_bound(key1)
返回正序首指针
begin()
返回正序尾指针
end()
返回反序首指针
rbegin()
返回反序尾指针
rend()