map_multimap
#include<iostream>
#include<string>
#include<map>
using namespace std; struct SelfType{
int number;
}; void map_find()
{
//map.lower_bound(keyElem);//返回第一个key>=keyElem元素的迭代器
//map.upper_bound(keyElem);//返回第一个key>keyElem元素的迭代器
//map.equal_range(keyElem);//返回一个pair,
//pair.first为第一个key>=keyElem元素的迭代器
//pair.second为第一个key>keyElem元素的迭代器 map<int,string> mapStu;
//1、通过pair的方式插入对象
//mapStu.insert( pair<int,string>(3, "小张"));
//2、通过value_type的方式插入对象
mapStu.insert( map<int, string>::value_type(, "小李") );
//3、通过数组的方式插入值
mapStu[] = "小张";
mapStu[] = "小刘";
mapStu[] = "小赵";
mapStu[] = "小王"; map<int,string>::iterator it_lower,it_upper;
it_lower=mapStu.lower_bound();
it_upper=mapStu.upper_bound();
cout<<it_lower->first<<","<<it_lower->second<<endl;
cout<<it_upper->first<<","<<it_upper->second<<endl;
pair<map<int,string>::iterator,map<int,string>::iterator> mapStuPair=mapStu.equal_range();
it_lower=mapStuPair.first;
it_upper=mapStuPair.second;
cout<<it_lower->first<<","<<it_lower->second<<endl;
if(it_upper !=mapStu.end())
{
cout<<it_upper->first<<","<<it_upper->second<<endl;
}
else
{
cout<<"it_upper ==mapStu.end()"<<endl;
}
/*
3,小刘
4,小赵
5,小王
it_upper ==mapStu.end()
请按任意键继续. . .
*/
} void map_greater()
{
map<int,string,greater<int>> mapStu;
//1、通过pair的方式插入对象
mapStu.insert( pair<int,string>(, "小张"));
//2、通过value_type的方式插入对象
mapStu.insert( map<int, string>::value_type(, "小李") );
//3、通过数组的方式插入值
mapStu[] = "小刘";
mapStu[] = "小王"; map<int,string,greater<int>>::iterator it;
for(it=mapStu.begin();it !=mapStu.end();++it)
{
cout<<it->first<<","<<it->second<<" ";
}
cout<<endl; }
void main()
{
map_find();return;
map_greater();return; map<int, char> mapA;
map<string, float> mapB;
//其中T1,T2还可以用各种指针类型或自定义类型
map<float, char> mapC;
map<int*, float> mapD;
map<SelfType, char> mapE; map<int,string> mapStu;
//1、通过pair的方式插入对象
mapStu.insert( pair<int,string>(, "小张"));
//2、通过value_type的方式插入对象
mapStu.insert( map<int, string>::value_type(, "小李") );
//3、通过数组的方式插入值
mapStu[] = "小刘";
mapStu[] = "小王"; map<int,string>::iterator it;
for(it=mapStu.begin();it !=mapStu.end();++it)
{
cout<<it->first<<","<<it->second<<" ";
}
cout<<endl; string strName = mapStu[];//取操作
cout<<strName.length()<<endl;
//只有当mapStu存在2这个键时才是正确的取操作,否则会自动插入一个实例,键为2,值为初始化值。
for(it=mapStu.begin();it !=mapStu.end();++it)
{
cout<<it->first<<","<<it->second<<" ";
}
cout<<endl; }
#include <iostream>
#include <string>
#include <map>
using namespace std; int main()
{
multimap<string,int> m_map;
string s("中国"),s1("美国");
m_map.insert(make_pair(s,));
m_map.insert(make_pair(s,));
m_map.insert(make_pair(s,));
m_map.insert(make_pair(s1,));
m_map.insert(make_pair(s1,));
m_map.insert(make_pair(s1,));
//方式1
int k;
multimap<string,int>::iterator m;
m = m_map.find(s);
for(k = ;k != m_map.count(s);k++,m++)
cout<<m->first<<"--"<<m->second<<endl;
//方式2
multimap<string,int>::iterator beg,end;
beg = m_map.lower_bound(s1);
end = m_map.upper_bound(s1);
for(m = beg;m != end;m++)
cout<<m->first<<"--"<<m->second<<endl;
//方式3
beg = m_map.equal_range(s).first;
end = m_map.equal_range(s).second;
for(m = beg;m != end;m++)
cout<<m->first<<"--"<<m->second<<endl;
return ;
} /*
中国--50
中国--55
中国--60
美国--30
美国--20
美国--10
中国--50
中国--55
中国--60
请按任意键继续. . .
*/
map_multimap的更多相关文章
随机推荐
- 精通react之react-router4源码分析(100代码实现router功能)
1.react-router4 是一个 react 组件 通过和 location / histroy 结合,来显示页面不同URL对应显示不同的组件 其中包含了三种路由.hash / boswer 等 ...
- RWMutex:共享/专有的递归互斥锁
具有共享/独占访问权限,且具有升级/降级功能的互斥锁 介绍 我的目标是创建可以充当读/写锁定机制的对象.任何线程都可以锁定它以进行读取,但是只有一个线程可以锁定它以进行写入.在写入线程释放它之前,所有 ...
- python 开机 定时启动
Windows开机自动运行.py文件1.找到写好的.py文件,例如我的.py文件路径:D:\编程测试文件\untitled\03131105.py 2.选中文件03131105.py,右键——属性—— ...
- PAT(B) 1030 完美数列 - C语言 - 滑动窗口 & 双指针
题目链接:1030 完美数列 (25 point(s)) 给定一个正整数数列,和正整数 \(p\),设这个数列中的最大值是 \(M\),最小值是 \(m\),如果 \(M≤mp\),则称这个数列是完美 ...
- Linux 服务器管理建议
Linux 服务器管理建议 一.学习Linux 的注意事项 Linux 严格区分大小写 Linux 一切皆文件 Linux 不靠扩展名区分文件类型 靠权限位标识来确定的 特殊文件要求写扩展名(给管理员 ...
- 配置linux命令行界面的 文件显示颜色
在linux命令行界面下使用ls命令时,有时会看见显示的文件会有不同的颜色,因为linux的文件没有后缀名这个概念(Windows系统中的文件会有后缀名,从而可以将文件标识为不同类型),显示不同的颜色 ...
- MEF在WCF REST中实际应用2(Global.asax注册)
IOCContainer文件: public class IOCContainer { /// <summary> /// 容器 /// </summary> public s ...
- selenium中的元素操作之三大等待(一)
等待时做什么,为什么使用等待 在做自动化测试,设计测试用例的时候,有时下一步的操作会依赖上一步的结果或者内容,上一步操作成功之后才能进行下一步操作等,这时候,我们就需要使用等待,来判断上一步操作是否完 ...
- 16 doc values 【正排索引】
搜索的时候,要依靠倒排索引:排序的时候,需要依靠正排索引,看到每个document的每个field,然后进行排序,所谓的正排索引,其实就是doc values 在建立索引的时候,一方面会建立倒排索引, ...
- Laravel入门及实践,快速上手ThinkSNS+二次开发
温馨提示: l 本文纯干货,文字和代码居多,且适合零基础Laravel学习者: l 本文会新建一个名为 blog 的 Laravel 程序,这是一个非常简单的博客. l 欢迎随时关注ThinkSNS ...