当前位置: 首页 > news >正文

lambda用法及其原理

目录

  • lambda形式
  • lambda用法
    • 1.sort降序
    • 2.swap
    • 3.捕捉列表
  • 习题
    • 解题

lambda形式

[capture-list](parameters)->return type{function boby}
  1. [capture-list]:[捕捉列表]用于捕捉函数外的参数,可以为空,但不能省略;
  2. (parameters) :(参数列表)和函数参数功能相似,可以为空,可以省略;
  3. ->return type:返回值类型,可以省略;
  4. {function boby}:函数体。

lambda用法

1.sort降序

在这里插入图片描述

vector<int> v({1,2,3,4,5,6,7,8,9});
sort(v.begin(),v.end(),[](int x,int y){return x<y;});
//打印9 8 7 6 5 4 3 2 1

2.swap

int a=0,b=1;
auto swap=[](int& x,int& y){int tmp=x;x=y;y=tmp;};swap(a,b);//a=1  b=0

3.捕捉列表

  1. 捕捉列表内的参数默认被const修饰不可修改(传值捕捉),可以加上&表示传引用捕捉。

在这里插入图片描述

  1. 未被捕捉列表捕捉的参数无法在函数体使用,而全局变量d和静态变量e不被捕捉也能使用。

在这里插入图片描述

3.静态变量过多可以采用[=]隐式传值捕捉或[&]隐式传应用捕捉

在这里插入图片描述4. 也可以混合捕捉(a,b是传引用捕捉,其余是传值捕捉)
在这里插入图片描述

习题

在这里插入图片描述

解题

class Solution {
public:vector<int> advantageCount(vector<int>& nums1, vector<int>& nums2) {int n=nums1.size();vector<int> index(n);//下标数组for(int i=0;i<n;i++) index[i]=i;sort(nums1.begin(),nums1.end());sort(index.begin(),index.end(),[&](int i,int j){return nums2[i]<nums2[j];});//lambdavector<int> tmp(n);int left=0,right=n-1; for(int i=0;i<n;i++){if(nums1[i]>nums2[index[left]])tmp[index[left++]]=nums1[i];//比不过elsetmp[index[right--]]=nums1[i];}return tmp;  }
};
http://www.lryc.cn/news/516500.html

相关文章:

  • Go Ebiten随机迷宫生成示例
  • 前端学习DAY31(子元素溢出父元素)
  • 『SQLite』表的创建、修改和删除
  • 可持久化数据结构-线段树(主席树)
  • 如何利用PHP爬虫按关键字搜索淘宝商品
  • GitHub - riscv-software-src/riscv-isa-sim: Spike, a RISC-V ISA Simulator
  • ubuntu开机启动服务
  • 电子电气架构 --- 设计车载充电机的关键考虑因素
  • 2025_0105_生活记录
  • 电池管理系统(BMS)架构详细解析:原理与器件选型指南
  • 用JAVA编写一个简单的小游戏
  • 【SpringSecurity】二、自定义页面前后端分离
  • 小兔鲜儿:头部区域的logo,导航,搜索,购物车
  • 什么是VLAN?
  • WPS计算机二级•数据查找分析
  • 计算机网络 (28)虚拟专用网VPN
  • 【Python学习(七)——序列、列表、元组、range、字符串、字典、集合、可变类型不可变类型】
  • MATLAB常用建模方法——常用非参数检验
  • 【多线程初阶篇 ²】创建线程的方式
  • 纵览!报表控件 Stimulsoft Reports、Dashboards 和 Forms 2025.1 新版本发布!
  • 游戏引擎学习第75天
  • Java 23 集合框架详解:Set 接口及实现类(HashSet、TreeSet、LinkedHashSet)
  • ARMv8架构 CortexR52+ 内核 coresight_soc400介绍
  • 1.Python浅过(语法基础)
  • ioremap_nocache函数
  • 【235. 二叉搜索树的最近公共祖先 中等】
  • 构建智能企业:中关村科金大模型企业知识库的技术解析与应用
  • C++进阶——用Hash封装unordered_map和unordered_set
  • b612相机 13.5.5解锁会员hook
  • iOS - 弱引用表(Weak Reference Table)