map没有随机迭代器,只有顺序迭代器,所以
不能用sort
- 默认按照
less<key>
升序排列
#include<iostream>
#include<map>
using namespace std;
int main()
{
srand((unsigned)time(NULL));
multimap<int,int>mp;
// multimap第三个参数默认为less<Key>,即 less<int>
int n;
cin>>n;
int a,b;
for(int i=0; i<n; i++)
{
a=rand()%4;
b=rand()%4;
//插入
mp.insert(pair<int,int>(a,b));
}
map<int,int>::iterator iter;
//遍历输出
for(iter=mp.begin(); iter!=mp.end(); iter++)
cout<<iter->first<<" "<<iter->second<<endl;
return 0;
}
输入8,Key升序,Value随机:
1 1
1 1
1 2
2 1
3 3
3 0
3 3
3 2
- 定义map时,用greater< Key>实现按Key值递减插入数据
multimap<int,int,greater<int> >mp;
//注意<int>后空一格
输入8,Key值降序排列,Value随机:
3 0
3 3
3 1
2 3
2 0
1 0
0 0
0 0
- 写一个函数对象1(仿函数)
#include<iostream>