map相对于set的区别,map具有键值和实值,所有元素根据键值自动排序。pair的第一元素也被称为键值,第二元素被称为实值。map的底层机制为红黑树。
map的key不能重复,multimap可以。,不能任意该键值,可改实值。
生成随机数:
#include
#include
srand(time(NULL));放置种子
int n=rand() % 3+1;随机1~3的数
#include
#include
//map初始化
void text01()
{
//map容器模板参数,第一个key类型,第二个value类型
map
///插入数据 ,map有自动排序功能,用insert加数据
//pair.first() key值,pair.second value值
//第一种
//mymap.insert(pair
pair
//第三种
mymap.insert(map
//第四种
mymap[40]=40;
mymap[10]=20;//如果发现key不存在,创建pair插入到map容器中,存在则修改key对应的value值
cout<
for(map
{
//*it取出来的是一个pair
cout<<(*it).second<
}
void text02()
{
map
m1.insert(pair
map
m1.swap(m2);
cout<
//查找操作
void text03()
{
map
m[10]=20;
m[20]=30;
m[30]=40;
//cout<
}
class mykey
{
public:
mykey(int midex,int mid):midex(midex),mid(mid)
{
}
public:
int midex;
int mid;
};
class compare
{
public:
bool operator() (mykey m1,mykey m2) const
{
if(m1.midex!=m2.midex)
return m1.midex
else
{
return m1.mid
}
};
void text04()
{
multimap
mymap.insert(make_pair(mykey(1,2),10));
mymap.insert(make_pair(mykey(3,3),15));
mymap.insert(make_pair(mykey(1,1),13));
mymap.insert(make_pair(mykey(3,4),20));
for(map
{
cout<<((*it).first).midex<<":"<<((*it).first).mid<<"-"<<(*it).second<
}
int main()
{
//text01();
//text02();
//text03();
text04();
return 0;
}
#include#include



