C++ STL之map常用指令

本文详细介绍了C++ STL中的map容器使用方法,包括初始化、插入、查找等基本操作及lower_bound、upper_bound等高级功能,并附带了推荐的学习资源。

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

只记载本人在ACM中常用的函数。

map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力。

map内部为一颗红黑树。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。

1、初始化

map<int, string> m;

2、插入元素

m[1] = "aaa";

m[2] = "bbb";

m.insert (map<int, string> :: value_type(3, "ccc"));  //因为上面那种插入方法是先在m里插入关键字2,此时将值元素为缺省值,然后再对值元素赋值                               //所以如果值元素是类的话,下面这种插入方式时间开销比较小。

3、[]访问

string s = m[1];  //使用前先用find或者count来判断map中是否含有关键值1

4、find查找

map<int, string>::iterator it = m.find(3);        //find返回的是迭代器,而该迭代器指向的数据类型是pair
if (it == m.end()) tst ("no");
else cout << it->first << " " << it->second << endl;

5、count计数

int num = m.count(3);  //返回m中有多少个关键字为3,此处只可能是1或0

6、erase删除

  1. iterator erase(iterator it); //通过一个条目对象删除
  2. iterator erase(iterator first, iterator last);        //删除一个范围
  3. size_type erase(const Key& key); //通过关键字删除

7、clear清空

8、empty容器为空返回true

9、size返回元素个数

9、lower_bound返回键值>=给定元素的第一个位置(迭代器)

10、upper_bound返回键值>给定元素的第一个位置(迭代器)

 

推荐文章http://www.cppblog.com/xkjy3000/archive/2012/06/20/179518.aspx

转载于:https://www.cnblogs.com/plumrain/p/stl_map.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值