multimap用法
来源:互联网 发布:dmx控制器淘宝 编辑:程序博客网 时间:2024/05/24 04:09
#include <stdio.h>#include <map>#include <xtree>#include <algorithm>using namespace std;int main(int argc, char** argv){multimap<int, int> mmap;mmap.insert(pair<int, int>(1, 1));mmap.insert(pair<int, int>(1, 2));mmap.insert(pair<int, int>(2, 3));multimap<int, int>::iterator iter = mmap.begin();for (; iter != mmap.end(); ++iter)printf("%d, %d\n", iter->first, iter->second);//查找指定key的元素方法一:multimap<int, int>::iterator iter_lower_bound = mmap.lower_bound(1);multimap<int, int>::iterator iter_upper_bound = mmap.upper_bound(1);for (; iter_lower_bound != iter_upper_bound; iter_lower_bound++)printf("%d, %d\n", iter_lower_bound->first, iter_lower_bound->second);//查找指定key的元素方法二:iter = mmap.find(1);int num = mmap.count(1);int k = 0;for (; iter != mmap.end() && k < num; iter++, k++)printf("%d, %d\n", iter->first, iter->second);//查找指定key的元素方法三:pair<multimap<int, int>::iterator, multimap<int, int>::iterator> p_ret = mmap.equal_range(1);while (p_ret.first != p_ret.second){printf("%d, %d\n", p_ret.first->first, p_ret.first->second);p_ret.first++;}getchar();return 0;}
运行结果为:
1, 11, 22, 31, 11, 21, 11, 21, 11, 2
如果键是降序排列的话
#include <stdio.h>#include <map>#include <xtree>#include <algorithm>using namespace std;struct GreaterComp : public binary_function<const int&, const int&, bool>{result_type operator()(first_argument_type _Left, second_argument_type& _Right){return _Left > _Right;}};int main(int argc, char** argv){multimap<int, int, GreaterComp> mmap;mmap.insert(pair<int, int>(4, 3));mmap.insert(pair<int, int>(4, 3));mmap.insert(pair<int, int>(5, 3));mmap.insert(pair<int, int>(2, 3));mmap.insert(pair<int, int>(1, 1));mmap.insert(pair<int, int>(1, 2));mmap.insert(pair<int, int>(1, 5));mmap.insert(pair<int, int>(2, 3));multimap<int, int, GreaterComp>::iterator iter = mmap.begin();for (; iter != mmap.end(); ++iter)printf("%d, %d\n", iter->first, iter->second);printf("\n");//查找指定key的元素方法一:multimap<int, int, GreaterComp>::iterator iter_lower_bound = mmap.lower_bound(1);multimap<int, int, GreaterComp>::iterator iter_upper_bound = mmap.upper_bound(1);for (; iter_lower_bound != iter_upper_bound; iter_lower_bound++)printf("%d, %d\n", iter_lower_bound->first, iter_lower_bound->second);printf("\n");//查找指定key的元素方法二:iter = mmap.find(1);int num = mmap.count(1);int k = 0;for (; iter != mmap.end() && k < num; iter++, k++)printf("%d, %d\n", iter->first, iter->second);printf("\n");//查找指定key的元素方法三:pair<multimap<int, int, GreaterComp>::iterator, multimap<int, int, GreaterComp>::iterator> p_ret = mmap.equal_range(1);while (p_ret.first != p_ret.second){printf("%d, %d\n", p_ret.first->first, p_ret.first->second);p_ret.first++;}printf("\n");getchar();return 0;}
运行结果为
5, 34, 34, 32, 32, 31, 11, 21, 51, 11, 21, 51, 11, 21, 51, 11, 21, 5
可以发现,操作是没什么不同的
0 0
- multimap用法
- multimap用法
- STL::map,multimap用法
- multimap用法示例
- STL-multimap用法
- multimap用法示例
- Map与Multimap用法
- Multimap 用法简介
- multimap的用法
- multimap的用法示例
- map/multimap用法详解
- STL:map/multimap用法详解
- C++ STL multimap用法总结
- map与multimap的用法
- STL:map/multimap用法详解
- multimap
- multimap
- Multimap
- eclipse安装配置github插件egit
- 《页面制作》课程学习摘要
- telnet命令的安装
- Java 序列化机制(二) -- 控制序列化的兼容性
- RHEL7重定向和文件查找
- multimap用法
- 2016 UESTC Training for Dynamic Programming F - 柱爷与三叉戟不得不说的故事 压位dp
- RxJava源码初步分析
- 145. Binary Tree Postorder Traversal
- Task运行过程分析3——Map Task内部实现
- android studio 获得SHA1 码的步骤
- NYOJ squares(计算几何+区间覆盖)
- 数组引用与数组的一些小小小小研究
- 深入理解JVM03--垃圾收集器