254-C++ STL map lambda表达式

本文详细介绍了C++ STL中的map数据结构和lambda表达式。map底层实现为红黑树,提供了按键查找、插入等功能。lambda表达式作为仿函数的替代品,用于排序等操作。文中探讨了map的特性和迭代器类型,以及如何通过lambda表达式进行自定义排序。同时,还讨论了无序map的哈希实现和map的关键码唯一性,以及在遇到重复关键码时的行为。

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

1.lambda表达式
在这里插入图片描述
-> int可以一起省略
在这里插入图片描述
捕获范围只在函数内,包括参数列表,对于全局变量和全局对象,不存在捕获这个概念,全局变量在哪个函数都是可以使用的
在这里插入图片描述
lambda就是在替代仿函数,a>b就是从大到小的顺序,a<b就是从小到大的顺序,在排序的时候会调动仿函数
在这里插入图片描述
[&]是按引用捕获,只能捕获当前函数的变量、对象和参数列表的变量和对象

下面程序的输出结果是什么?
在这里插入图片描述
答案:110 110 0

所有仿函数都是常性方法

下面程序在f1中objx就是局部变量objx的引用,而在f2中,objx是一个副本,因为它是按值捕获,它会拷贝构造一个Object对象,是一个副本,
在这里插入图片描述
lambda表达式就相当于一个局部函数,但是不是局部函数

2.map的底层实现是红黑树

3.map类型
在这里插入图片描述
4.map中的[]和at是很重要的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值