stl::(7)map容器API

本文详细介绍了STL中的map容器,包括构造函数、赋值操作、大小查询、元素插入与删除、查找功能以及如何自定义排序规则。通过这些操作,读者可以深入理解并熟练运用map在实际编程中进行关联数据的管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

map 构造函数

map<T1,T2>mapT;        // 默认构造函数
map(const map &mp);    // 拷贝构造函数

map 赋值操作

map& operator=(const map &mp);  // 重载=
swap(mp);                       // 交换两个集合容器

map 大小操作

size();    // 返回容器中元素的数目
empty()// 判断容器是否为空

map 插入数据元素操作

map.insert(...)// 往容器插入元素,返回pair(iterator,bool)
map<int, string>mapStu;
// 第一种通过pair的方式插入对象
mapStu.insert(pair<int, string>(3,"张三"));
// 第二种通过pair的方式插入对象
mapStu.insert(make_pair(-1,"李四"));
// 第三种通过value_type的方式插入对象(不推荐)
mapStu.insert(map<int, string>::value_type(1,"王五”))// 第四种通过数组的方式插入值
map[3]="赵六"

map 删除操作

clear();        // 删除所用元素
erase(pos);     // 删除pos迭代器所指的元素,返回下一个元素的迭代器
erase(beg , end);     // 删除[beg, end)的所有元素, 返回下一个元素的迭代器
erase(keyElem);       // 删除容器key为keyElem的对组

map 查找操作

find(key);         // 查找key是否存在,若存在,返回该元素的迭代器,若不存在,返回map.end()
count(keyElem);    // 返回容器key为keyElem的对组个数,对map来说,要么是0,要么是1。对于multimap可能大于1
lower_bound(keyElem);     // 返回第一个key>=keyElem元素的迭代器
upper_bound(keyElem);     // 返回第一个key>keyElem元素的迭代器
equal_range(keyElem);     // 返回容器中key与keyElem相等的上下限的两个迭代器

map 自定义排序

class myCompare
{
public:
  bool operator()(int v1,int v2)
{
return  true;
}
};

int main()
{
// 大到小排序
map<int , int ,myCompare>m;
m.insert(pair<int, int>(1,10));
m.insert(make_pair(2,20));
m.insert(map<int, int>:: value_type(3,33));
m[4]=40;
for(map<int, int ,myCompare>::iterator it=m.begin();i!=m.end();i++)
{
cout<<it->first<<"-"<<it->second<<endl;
}
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值