1 /* 2 multimap中的三种遍历方法 3 multimap中如果没有查找到相应元素,则返回的迭代器是依据该元素的排列顺序该键应该插入的位置 4 如果找不到,则方法一和方法二返回的两个迭代器应该相等 5 */ 6 #include <iostream> 7 #include <map> 8 #include <string> 9 #include <utility> 10 11 using namespace std; 12 13 int main() 14 { 15 multimap<string, string> mulMap; 16 mulMap.insert(make_pair("鲁迅", "朝花夕拾")); 17 mulMap.insert(make_pair("鲁迅", "阿Q正传")); 18 mulMap.insert(make_pair("鲁迅", "野草")); 19 mulMap.insert(make_pair("罗贯中", "三国演义")); 20 mulMap.insert(make_pair("罗贯中", "隋唐志传")); 21 mulMap.insert(make_pair("琼瑶", "还珠格格")); 22 mulMap.insert(make_pair("琼瑶", "情深深雨蒙蒙")); 23 typedef multimap<string, string>::iterator multiMapItor; 24 //方法一:推荐 25 26 string author("鲁迅"); 27 cout << author << "的书籍有:" << endl; 28 pair<multiMapItor, multiMapItor> pos = mulMap.equal_range(author); 29 while(pos.first != pos.second) 30 { 31 cout << pos.first->second << endl; 32 ++pos.first; 33 } 34 cout << endl; 35 //方法二: 36 author.assign("罗贯中"); 37 cout << author << "的书籍有:" << endl; 38 multiMapItor beg = mulMap.lower_bound(author); 39 multiMapItor end = mulMap.upper_bound(author); 40 while(beg != end) 41 { 42 cout << beg->second << endl; 43 ++beg; 44 } 45 cout << endl; 46 //方法三:不推荐 47 author.assign("琼瑶"); 48 cout << author << "的书籍有:" << endl; 49 typedef multimap<string, string>::size_type sz_type; 50 sz_type entries = mulMap.count(author); 51 multiMapItor itor = mulMap.find(author); 52 for(sz_type cnt = 0; cnt != entries; ++cnt) 53 cout << (itor++)->second << endl; 54 55 system("pause"); 56 return 0; 57 }
功不成,身已退
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决