如何列出multimap中某個key的所有value? (C/C++) (STL)

摘要:
map和multimap都有自己的find(),可以在没有GenericAlgorithm的情况下进行搜索。事实上,当容器和算法都提供方法时,您应该首先考虑使用容器自己的方法,因为算法考虑泛型并需要迭代器,但容器自己的方式是定制的,因此实现速度很快。要列出多重映射中键的所有值,有三种方法。如何在演示示例中使用这三种方法=第二位)49cout˂第二个˂˂endl;5051返回0;52}除了使用更多count()+find()、lower_bound()/upper_bound()和equal_ range()代码外,代码几乎很长,因此没有特别的建议。

map和multimap都自帶find(),不需Generic Algorithm就可搜尋,事實上,當container和algorithm都提供方法時,應先考慮使用container自帶的方法,因為algorithm考慮到泛型,還需要經過iterator,但container自帶的方法卻是量身訂做的,所以執行速度較快。

要列出multimap中某個key的所有value,有三種方式,此範例demo如何使用這三種方式。

 1如何列出multimap中某個key的所有value? (C/C++) (STL)第1张如何列出multimap中某個key的所有value? (C/C++) (STL)第2张/**//* 
 2如何列出multimap中某個key的所有value? (C/C++) (STL)第3张(C) OOMusou 2006 http://oomusou.cnblogs.com
 3如何列出multimap中某個key的所有value? (C/C++) (STL)第3张
 4如何列出multimap中某個key的所有value? (C/C++) (STL)第3张Filename    : MultiMapFindByKey.cpp
 5如何列出multimap中某個key的所有value? (C/C++) (STL)第3张Compiler    : Visual C++ 8.0 / ISO C++
 6如何列出multimap中某個key的所有value? (C/C++) (STL)第3张Description : Demo how to find by key in multimap
 7如何列出multimap中某個key的所有value? (C/C++) (STL)第3张Release     : 12/16/2006 1.0
 8如何列出multimap中某個key的所有value? (C/C++) (STL)第9张*/

 9如何列出multimap中某個key的所有value? (C/C++) (STL)第10张#include <iostream>
10如何列出multimap中某個key的所有value? (C/C++) (STL)第10张#include <map>
11如何列出multimap中某個key的所有value? (C/C++) (STL)第10张#include <string>
12如何列出multimap中某個key的所有value? (C/C++) (STL)第10张
13如何列出multimap中某個key的所有value? (C/C++) (STL)第10张using namespace std;
14如何列出multimap中某個key的所有value? (C/C++) (STL)第10张
15如何列出multimap中某個key的所有value? (C/C++) (STL)第1张如何列出multimap中某個key的所有value? (C/C++) (STL)第2张int main() 如何列出multimap中某個key的所有value? (C/C++) (STL)第18张{
16如何列出multimap中某個key的所有value? (C/C++) (STL)第3张  typedef multimap<stringstring> AuthorBooks;
17如何列出multimap中某個key的所有value? (C/C++) (STL)第3张  AuthorBooks authorBooks;
18如何列出multimap中某個key的所有value? (C/C++) (STL)第3张
19如何列出multimap中某個key的所有value? (C/C++) (STL)第3张  authorBooks.insert(make_pair("Stanley B. Lippman""C++ Primer"));
20如何列出multimap中某個key的所有value? (C/C++) (STL)第3张  authorBooks.insert(make_pair("Stanley B. Lippman""Essentail C++"));
21如何列出multimap中某個key的所有value? (C/C++) (STL)第3张  authorBooks.insert(make_pair("Scott Meyers""Effective C++"));
22如何列出multimap中某個key的所有value? (C/C++) (STL)第3张  authorBooks.insert(make_pair("Andrei Alexandrescu""Modern C++ Design"));
23如何列出multimap中某個key的所有value? (C/C++) (STL)第3张
24如何列出multimap中某個key的所有value? (C/C++) (STL)第3张  string searchItem = "Stanley B. Lippman";
25如何列出multimap中某個key的所有value? (C/C++) (STL)第3张
26如何列出multimap中某個key的所有value? (C/C++) (STL)第3张  // Find all values by key using count & find 
27如何列出multimap中某個key的所有value? (C/C++) (STL)第3张  AuthorBooks::size_type entries = authorBooks.count(searchItem);
28如何列出multimap中某個key的所有value? (C/C++) (STL)第3张  AuthorBooks::iterator iter = authorBooks.find(searchItem);
29如何列出multimap中某個key的所有value? (C/C++) (STL)第3张  for(AuthorBooks::size_type cnt = 0; cnt != entries; ++cnt) 
30如何列出multimap中某個key的所有value? (C/C++) (STL)第3张    cout << iter++->second << endl;
31如何列出multimap中某個key的所有value? (C/C++) (STL)第3张
32如何列出multimap中某個key的所有value? (C/C++) (STL)第3张  cout << endl;
33如何列出multimap中某個key的所有value? (C/C++) (STL)第3张  cout << endl;
34如何列出multimap中某個key的所有value? (C/C++) (STL)第3张
35如何列出multimap中某個key的所有value? (C/C++) (STL)第3张  // Find all values by key using lower_bound(), upper_bound();
36如何列出multimap中某個key的所有value? (C/C++) (STL)第3张  AuthorBooks::iterator beg = authorBooks.lower_bound(searchItem);
37如何列出multimap中某個key的所有value? (C/C++) (STL)第3张  AuthorBooks::iterator end = authorBooks.upper_bound(searchItem);
38如何列出multimap中某個key的所有value? (C/C++) (STL)第3张
39如何列出multimap中某個key的所有value? (C/C++) (STL)第3张  while(beg != end) 
40如何列出multimap中某個key的所有value? (C/C++) (STL)第3张    cout << beg++->second << endl;
41如何列出multimap中某個key的所有value? (C/C++) (STL)第3张
42如何列出multimap中某個key的所有value? (C/C++) (STL)第3张  cout << endl;
43如何列出multimap中某個key的所有value? (C/C++) (STL)第3张  cout << endl;
44如何列出multimap中某個key的所有value? (C/C++) (STL)第3张
45如何列出multimap中某個key的所有value? (C/C++) (STL)第3张  // Find all values by key using equal_range()
46如何列出multimap中某個key的所有value? (C/C++) (STL)第3张  typedef AuthorBooks::iterator iterAB;
47如何列出multimap中某個key的所有value? (C/C++) (STL)第3张  pair<iterAB, iterAB> pos = authorBooks.equal_range(searchItem);
48如何列出multimap中某個key的所有value? (C/C++) (STL)第3张  while(pos.first != pos.second) 
49如何列出multimap中某個key的所有value? (C/C++) (STL)第3张    cout << pos.first++->second << endl;
50如何列出multimap中某個key的所有value? (C/C++) (STL)第3张
51如何列出multimap中某個key的所有value? (C/C++) (STL)第3张  return 0;
52如何列出multimap中某個key的所有value? (C/C++) (STL)第9张}


除了使用count() + find()程式碼較多外,lower_bound()/upper_bound()和equal_range()程式碼都差不多長,所以沒有特別建議。

免责声明:文章转载自《如何列出multimap中某個key的所有value? (C/C++) (STL)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇数据库实践python并发编程之多线程2死锁与递归锁,信号量等下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java—视频处理

  原始视频通常需要经过编码处理,生成m3u8和ts文件方可基于HLS协议播放视频。通常用户上传原始视频,系统 自动处理成标准格式,系统对用户上传的视频自动编码、转换,最终生成m3u8文件和ts文件, 处理流程如下:   1、用户上传视频成功   2、系统对上传成功的视频自动开始编码处理   3、用户查看视频处理结果,没有处理成功的视频用户可在管理界面再次...

Go语言正则表达式提取网页文本

为了方便提取,我们会把正则表达式中要提取的数据使用命名方式来书写正则表达式。这个技术在Go语言中如何实现,可以看下面这篇博客: Using the Go Regexp Packagehttp://blog.kamilkisiel.net/blog/2012/07/05/using-the-go-regexp-package/ 简单期间,这里复制其中几个例子...

C#.图片拖动处理(摘抄)

本文摘自博客园牛人吉日嘎啦。 通用权限管理系统组件源码里,有职员管理的功能,实现了直接可以把照片拖拽过来的功能,用起来会很方便。 想要控件支持拖拽,需要设置 AllowDrop 属性。 还需要写下面的2个事件。 参考代码如下,有需要的可以参考一下,把有需要的代码参考一下就可以了。 //---------------------------------...

iOS ASA 的归因技术支持_Swift

ASA简介苹果ASA搜索广告服务已全面上线,在App Store中搜索关键词,搜索结果的顶部会出现带有“广告”标识的App展示。 ASA拥有高转化率、低成本、用户精准、流量安全等优势,是一个相当重要的获量渠道。ASA不知道是什么请看这里 https://ads.apple.com/cn/?cid=BD-BZ-Desktop-SC-CN-001 ASA投放...

Educational Codeforces Round 40 (Rated for Div. 2)

A. Diagonal Walking Mikhail walks on a 2D plane. He can go either up or right. You are given a sequence of Mikhail's moves. He thinks that this sequence is too long and he wants t...

MyBatis基础总结

1.1什么是MyBatis MyBatis(前身是iBatis)是一个支持普通SQL查询、存储过程以及高级映射的持久层框架, 它消除了几乎所有的JDBC代码和参数的手动设置以及对结果集的检索,并使用简单的XML或注解进行配置和原始映射, 用以将接口和Java的POJO(Plain Old Java Object,普通Java对象)映射成数据库中的记录,使得...