map容器

1.基本概念

简介:
map 中所有元素都是 pair
pair 中第一个元素为 key (键值),起到索引作用,第二个元素为 value (实值)
所有元素都会根据元素的键值自动排序
本质:
map/multimap 属于 关联式容器 ,底层结构是用二叉树实现。
优点:
可以根据 key 值快速找到 value
map multimap 区别
map 不允许容器中有重复 key 值元素
multimap 允许容器中有重复 key 值元素

2.构造和赋值 

map<T1, T2> mp;         //map 默认构造函数 :
map<int,int> m1;
map(const map &mp) ;         //拷贝构造函数
map<int,int> m2(m1);
map& operator=(const map &mp) ;         //重载等号操作符
m3=m2;

3.大小和交换

size() ;         //返回容器中元素的数目
m1.size();
empty();         // 判断容器是否为空
m1.empty();         //1为空,0为非空
swap(st);         // 交换两个集合容器
m1.swap(m2);

 4.插入和删除

insert(elem) ;         //在容器中插入元素。
1.m.insert(pair<int,int>(1,10));
2. m . insert ( make_pair ( 2 , 20 ));
3. m . insert ( map < int , int > :: value_type ( 3 , 30 ));
4. m [ 4 ] = 40 ;( 不推荐使用 )
clear();         // 清除所有元素
m.clear();
erase(pos) ;         //删除 pos 迭代器所指的元素,返回下一个元素的迭代器。
m . erase ( 3 ); 
erase(beg, end);         // 删除区间 [beg,end) 的所有元素 ,返回下一个元素的迭代器。
m . erase ( m . begin (), m . end ());

erase(key);         //删除容器中值为key的元素。

m . erase ( 3 );

5.查找和统计  

find(key) ;         //查找 key 是否存在 , 若存在,返回该键的元素的迭代器;若不存在,返回 set.end();
map < int , int > :: iterator pos = m . find ( 3 );
pos=m . end ();
count(key) ;         //统计 key 的元素个数
int num = m . count ( 3 );

6.容器排序 

仿函数:

class MyCompare {
public:
bool operator()(int v1, int v2) {
return v1 > v2;
}
};

 主函数中创建:

map<int, int, MyCompare> m;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值