STL——map介绍

本文深入探讨了C++ STL中map与multimap的特性与应用,包括其红黑树底层实现原理,键值对存储机制,以及如何通过构造函数、插入方法进行高效数据管理。此外,还介绍了pair迭代器返回值的使用技巧。

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

先普及一下基础知识

一下这些作为基本的有序容器,则他们在插入时已经进行了排序,

学习过程:定义-属性-修改-基本操作- multimap

参考博客:https://blog.csdn.net/ChaoFeiLi/article/details/103146840

定义

map:底层是红黑树(平衡排序二叉树)实现插入时有序。使用键值对(key-value)保存。高效查找。

为了实现快速查找,map内部本身就是按序存储的(比如红黑树)。在我们插入<key, value>键值对时,就会按照key的大小顺序进行存储。这也是作为key的类型必须能够进行<运算比较的原因。

构造函数:

函数insert(),插入一个键值对

 

void fun(pair<int,char> pr){
	cout<<pr.first<<pr.second<<endl;
}
	typedef pair<int,char> in_pair;//typedef使用之后,更加简洁
	map<int,char> map1;
	map1.insert(pair<int,char>(1,'a'));
	map1.insert(in_pair(2,'b'));
        for_each(map1.begin(),map1.end(),fun);

pair <iterator, bool> insert( const TYPE &val );其中insert()函数的返回值类型是pair <iterator, bool>,其中返回值里面是一个map类型的迭代器和一个bool的值

    pair<map<int,char>::iterator,bool> pr;
    pr = map1.insert(in_pair(2,'b'));
    cout<<pr.second<<".............."<<( *pr.first).first<< (*pr.first).second<<endl;

属性

 修改:增、删、改、查

基本操作:查找、交换、排序等

 

 multimap

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值