关联式容器map/multimap之元素个数统计、查找元素及元素的随机访问
来源:互联网 发布:sai for mac 有压感 编辑:程序博客网 时间:2024/05/22 05:27
#include <iostream>#include <map>using namespace std;typedef pair<int, double> mypair;map<int, double, less<int>>::iterator it1;multimap<int, double, less<int>>::iterator it2;void print(map<int, double, less<int>> &);void printM(multimap<int, double, less<int>> &);void main(){map<int, double, less<int>> m1;multimap<int, double, less<int>> m2;mypair temp;typedef map<int, double, less<int>> Map;typedef multimap<int, double, less<int>> MMap;// 初始化容器,插入操作m1.insert(mypair(1, 6.0));m1.insert(mypair(2, 13.5));m1.insert(mypair(3, 11.3));m1.insert(mypair(4, 13.4));m1.insert(mypair(5, 15.1));m2.insert(mypair(1, 2.3));m2.insert(mypair(2, 3.0));m2.insert(mypair(2, 10.6));m2.insert(mypair(3, 9.4));m2.insert(mypair(4, 15.3));// 输出容器内容cout << "m1:" << endl;print(m1);cout << "m2:" << endl;printM(m2);cout << endl;// -------------- 元素个数的统计 ------------------------/* Count()函数的功能是返回元素在容器Map/Multimap中出现的次数。函数原型是:size_type count(const key_type& _Keyval) const;*/int size = m1.count(2);int Msize = m2.count(2);cout << "map里面键值为2的元素个数:" << size << endl;cout << "multimap里面键值为2的元素个数:" << Msize << ";" << endl;cout << endl;// ----------------- 查找元素 ---------------------------/* 容器Map/Multimap实现查找元素功能的成员函数是find()。其功能是返回指向key的迭代器。函数原型是:iterator find(const key_type& _Keyval);const_iterator find(const key_type& _Keyval) const;*/it1 = m1.find(5);// WRONG-> it1 = find(5);// map<int, double, less<int>>::iterator it1;cout << "m1中键值为5的元素对为" << endl;cout << (*it1).first << ";" << (*it1).second << endl;/* mypair temp;temp = *it1;cout << "m1中键值为5的元素对为" << endl;cout << temp.first << ";" << temp.second << endl;*/it2 = m2.find(2);cout << "m2中键值为2的元素对为" << endl;cout << it2->first << "; " << it2->second << endl;cout << endl;// ----------------- 元素的随机访问 ---------------------/* 容器Map/Multimap元素的随机访问功能包括函数upper_bound()、lower_bound()和equal_range():Iterator lower_bound(const Key &key);Const_iterator lower_bound(const Key& key) const;Pair<iterator, iterator> equal_range(const Key &key);Iterator upper_bound(const Key &key);const_iterator upper_bound(const Key &key) const;*/cout << "map m1中键值为2的元素对为:" << endl;// 迭代器 ------------ lower_bound ---------it1 = m1.lower_bound(2);// 总是忘记写m1.  ̄□ ̄||temp = *it1;cout << temp.first << ";" << temp.second << endl;cout << "multimap m2中键值为2(lower_bound)的元素对为:" << endl;it2 = m2.lower_bound(2);cout << it2->first << ";" << it2->second << endl;// --------------- upper_bound ------------------cout << "map m1中键值为2的元素对为:" << endl;it1 = m1.upper_bound(2);temp = *it1;cout << temp.first << ";" << temp.second << endl;cout << "multimap m2中键值为2(upper_bound)的元素对为:" << endl;it2 = m2.upper_bound(2);cout << it2->first << ";" << it2->second << endl;cout << endl;// --------------- equal_bound ------------------pair<Map::iterator, Map::iterator> p1;pair<MMap::iterator, MMap::iterator> p2;p1 = m1.equal_range(3);cout << p1.first->second << "; " << p1.second->second << endl;p2 = m2.equal_range(2);cout << p2.first->second << "; " << p2.second->second << endl;cin.get();}void print(map<int, double, less<int>> &m){map<int, double, less<int>>::iterator it;mypair tmp;if (m.size() < 0)cout << "Map is empty!" << endl;else{for (it = m.begin(); it != m.end(); it++){tmp = *it;cout << tmp.first << ";" << tmp.second << endl;}}}void printM(multimap<int, double, less<int>> &m){multimap<int, double, less<int>>::iterator it;mypair tmp;if (m.size() < 0)cout << "Map is empty!" << endl;else{for (it = m.begin(); it != m.end(); it++){tmp = *it;cout << tmp.first << ";" << tmp.second << endl;}}}
编译结果:
0 0
- 关联式容器map/multimap之元素个数统计、查找元素及元素的随机访问
- 关联式容器map/multimap之初始化、删除元素、交换元素及清空操作
- 关联式容器map/multimap之元素大小比较(键值比较和实值比较)
- C++ 关联容器之map插入相同键元素与查找元素操作
- multimap容器查找元素的三种方法总结
- C++ map关联容器删除元素
- 统计vector容器中重复元素的个数
- C++语法基础--顺序容器(三)--关系操作符,容器大小的操作,访问元素,删除元素,查找元素
- js统计元素个数
- 关联式容器map/multimap
- 模糊查找元素个数
- map常用成员(关联容器)----创建map<主键,主键对应的值>,增insert,删erase,改查找find,然后修改second,遍历iterator,获取元素个数size,判空empty
- 随机访问列表元素
- multimap的查找和删除元素的使用举例
- c++map查找元素
- 顺序容器--添加及访问元素
- C++语法基础--关联容器--map(二)--查找并读取map中的元素count(),find()与 从map对象中删除元素erase()
- 不会改变操作对象内容的STL算法(元素查找,序列查找,统计元素个数,比较区间,找最值)
- 封装json ajax函数
- java练习3,去除容器中自定义的重复对象
- Js事件列表
- Hibernate程序碰到的两个问题
- Sublime Text——简介、快捷键及插件推荐
- 关联式容器map/multimap之元素个数统计、查找元素及元素的随机访问
- OpenLayers根据两点连线
- <转> JAVA CAS原理深度分析
- PAT (Top Level) Practise 1001Battle Over Cities - Hard Version (35)
- JAVA笔记整理(1):进制转换
- 读写给大家看的项目管理书
- The 11th Zhejiang Provincial Collegiate Programming Contest->Problem G:G - Ternary Calculation
- 简单选择排序
- Gson 设定固定的日期格式来生成Gson-------Gson 可以将某个对象转换成json,也可将json转换成对象