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

C++lambda表达式简单笔记

lambda表达式语法

#include <iostream>int main(int argc, char* argv[])
{/*** 1. 基本形式与语法*///如果没有传入参数,参数列表可以省略auto lambda1 = []() { std::cout << "Hello, World !" << std::endl; };auto lambda2 = [](int x, int y) -> int //返回参数可使用尾置返回语法{if (x > y)return 1;else if (x < y)return -1;elsereturn 0;};/*** 输出:* Hello, World !*/lambda1();/*** 输出:* -1*/std::cout << lambda2(1, 2) << std::endl;/*** 输出:* 1*/std::cout << lambda2(2, 1) << std::endl;/*** 输出:* 0*/std::cout << lambda2(1, 1) << std::endl;return 0;
}

捕获

#include <iostream>
#include <algorithm>
#include <vector>
#include <string>int main(int argc, char* argv[])
{/*** lambda表达式捕获外部变量示例*/std::vector<int> vec{ 1,2,3,4,5,6,7,8,9,10 };std::string str;//&str为引用捕获,在函数内部可以被修改std::for_each(vec.begin(), vec.end(), [&str](int n) {str.append(std::to_string(n)).append(",");});str.pop_back();/*** 输出:* 1,2,3,4,5,6,7,8,9,10*/std::cout << str << std::endl;//argc为值捕获(拷贝),该变量在函数内部修改后不会影响外部变量std::for_each(argv, argv + argc, [argc](char* args) {/*** 输出命令行参数*/std::cout << args << std::endl;});/*** 关于其他捕获语法:* [=]: 所有外部变量的捕获均为值捕获(拷贝)* [&]: 所有外部变量的捕获均为引用捕获* [=, var...]: var以引用捕获,其他外部变量以值捕获* [&, var...]: var以值捕获,其他外部变量以引用捕获*/return 0;
}

其他

当lambda表达式不使用[]捕获时,其表现与函数指针相同;如果使用了[]捕获,则会变成带有成员变量(引用或拷贝)和重载operator()函数运算符的类,所以将lambda表达式代入参数为函数指针的函数时,不能使用[]捕获。

http://www.gsyq.cn/news/23802.html

相关文章:

  • ️ PostgreSQL 数据类型
  • CSP-J/S 2025 第一轮游记
  • Python 潮流周刊#123:你可能不需要单例模式
  • Python 潮流周刊#122:Python 3.14 来了,速度如何?
  • 一位焦虑的普通二本软件工程的学生
  • C++类的运算符重载
  • 微软Office LTSC 2021(KpoJIuK直装版)x64 v16.0.14334.20344 10月版
  • 征程 6 | 征程 6 工具链如何支持 Matmul/Conv 双 int16 输入量化?
  • 我做 AI 算法 10 年,见过最可惜的事:技术再牛,说不明白也是白搭
  • 第六周作业---定时器
  • 运筹学在供应链优化中的实际应用
  • 被C语言链表折磨的一天 Σ( △ |||)︴
  • Dr. Jane Goodall
  • Android SSL Pinning检测利器:SSLPinDetect技术解析
  • 详细介绍:【探寻C++之旅】第十六章:unordered系列的认识与模拟实现
  • Dubbo入门-Dubbo的快速使用
  • 站位2
  • adb安装教程(附adb命令大全详解)adb环境部署教程
  • 2025 年盖板源头厂家最新推荐榜单:电力 / 隧道 / 电缆沟等多场景适用品牌优选,解析原材料采购与成本控制要点
  • 2025 年真空炉制造厂家最新推荐排行榜:涵盖高温烧结真空炉 / 真空退火炉 / 智能铍铜真空炉,助力企业精准选型
  • 将 XMind 测试用例转换为 CSV 文件导入测试管理平台
  • 【为美好CTF献上祝福】unity逆向
  • CSP-S 2022 Solution
  • 面试 / 答辩总卡壳?这款 AI 面试辅助新功能:上传专属资料,精准应答不翻车
  • 081_尚硅谷_单分支双分支课堂练习(1)
  • 群晖NAS220+搭建Jupyter Notebook服务 - 何苦
  • 实用指南:大数据毕业设计 python智慧交通监控系统 Flask+Echarts可视化 百度地图 毕业设计(源码)✅
  • 2025 年最新铸铁闸门源头厂家推荐排行榜,涵盖四川 / 镶铜 / 渠道 / 圆形 / 方形等类型,助力一站式采购优质供应商
  • 内存四区
  • 2025年西安买房终极指南:十大高性价比楼盘权威推荐