是否可以将文字值传递给 C++ 中的 lambda 一元谓词?

2024-04-23

给出以下在地图上进行反向查找的代码:

    map<char, int> m = {{'a', 1}, {'b', 2}, {'c', 3}, {'d', 4}, {'e', 5}};

    int findVal = 3;
    Pair v = *find_if(m.begin(), m.end(), [findVal](const Pair & p) {
        return p.second == findVal;
    });
    cout << v.second << "->" << v.first << "\n";

是否可以传递一个文字值(在本例中为 3),而不必将其存储在变量(即 findVal)中,以便可以通过捕获列表访问它?

显然,这种情况下的限制之一是 lambda 充当一元谓词的角色,因此我无法在括号之间传递它。

Thanks


你可以这样写:

 Pair v = *find_if(m.begin(), m.end(), [](const Pair & p) {
    return p.second == 3;
 });

您不需要一开始就捕获它。

顺便说一句,你不应该假设std::find_if就会找到该元素。更好的方法是使用迭代器:

 auto it = find_if(m.begin(), m.end(), [](const Pair & p) {
              return p.second == 3;
           });
 if (it == m.end() ) { /*value not found*/ }

 else {
     Pair v = *it;
     //your code
 }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以将文字值传递给 C++ 中的 lambda 一元谓词? 的相关文章

随机推荐

  • Cosmos DB 中的向后分页

    我正在尝试在我的 Vue 前端上使用 c 和 cosmos 实现一个简单的分页系统 但我不确定当用户想要返回时实现分页的最佳方法 为了前进 我使用延续令牌 所以 Cosmos 知道我已经到了哪里 但我不太确定向后工作的最佳方法 或者如果用户
  • yii2 作曲家更新致命错误

    当我更新我的作曲家以添加yii2 solr扩展我的项目时 我遇到如下错误 The yiisoft yii2 composer plugin requires composer plugin api 1 0 0 this WILL break
  • 如何配置两个 JSON 序列化器并根据路由选择正确的一个

    我有一个使用 Net Framework 4 7 的 ASP NET Core Web API 项目 我正在升级到 Net Core 3 1 我升级的原因之一是使用新的 System Text Json 序列化程序 目前 我有一些基于路线的
  • Grails 2.4.3:使用 REST 服务

    如何在 Grails 2 4 3 中使用 RESTful Web 服务 我还需要使用基本身份验证 你可能认为这个问题已经有了一个很好的答案 但我真的很难找到一个 许多答案都向我指出了 Grails Rest 插件的方向 我已经尝试过但无法为
  • 指示 getUserMedia 使用最佳可用相机分辨率

    我正在使用 getUserMedia 函数从网络摄像头录制视频 一切工作正常 除了当我刚刚指定 video true 约束时它仅以 640x480 分辨率录制 如果我设置如下约束 我现在可以在笔记本电脑上获得更好的录音质量 var medi
  • Spring MVC 如何处理多用户

    我使用 Spring 已有 6 个多月了 我无法理解与以下场景相关的底层机制 我有一个 Spring Web 应用程序 现在我在控制器中自动连接了模型 根据 url 匹配 它调用相应的方法 我所有的方法都是单例的 现在 当两个用户同时打开应
  • ActionBarSherlock:getSupportMenuInflator() 未定义

    我在用着动作栏夏洛克并尝试使用以下方法来扩充我的 XML 菜单getSupportMenuInflator 但它给出了一个错误 the method getSupportMenuInflator is undefined for the t
  • 如何创建对象并将其添加到向量中?

    我有一个 C 向量 我希望向量能够容纳可变数量的对象 Visual Studio 2012 给我一个错误 Error type name is not allowed 从这段 C 代码中可以看出 include
  • zend框架FlashMessenger问题

    我正在使用 FlashMessenger 助手来设置消息 但无法使用 getMessages 方法检索消息 它返回 null 这是我的示例代码
  • 从mapbox api获取建筑信息

    有没有办法从 Mapbox API 获取建筑信息 几何形状 高度等 我从这个例子开始 https www mapbox com mapbox gl js example 3d buildings https www mapbox com m
  • 没有历史记录的 Git 存储库

    是否可以拥有一个没有历史记录的 Git 存储库 例如 我工作的地方有一个本地 Git 存储库 我想将最新版本推送到生产服务器 生产服务器上不应存储任何历史记录 我怎样才能做到这一点 你可以看看命令是否git archive http git
  • Jenkins MultiJob - 发送包含内部作业数据的结果电子邮件

    我有一个包含 3 个内部作业的多作业项目 需要按以下顺序执行 Master MultiJob Project Job Phase 1 gt JOB A Phase 2 gt JOB B Phase 2 gt JOB C 当作业 C 结束时
  • Symfony2 覆盖 User.orm.xml

    我需要覆盖这个 Symfony vendor friendsofsymfony user bundle FOS UserBundle Resources config doctrine model User orm xml 文件
  • 更改响应背景颜色的文本颜色

    考虑这个例子 codepen https codepen io anon pen EdwKZb infobox width 110mm height 65mm background image url https i pinimg com
  • 如何在 React 的 recompose 生命周期方法中 setState?

    我在我的 React 项目中使用 recomposehttps github com acdlite recompose https github com acdlite recompose 这是一个很棒的图书馆 我正在使用compose实
  • 使用 XSD.exe 从多个 XSD 架构生成 C# 类

    我有 2 个 XSD 文件 假设一个 XSD 文件 ABC xsd 包含属于 XML 一部分的元素 另一个 XSD 文件假设 XYZ xsd 包含这些元素的定义 现在 在 ABC XSD 保存元素 模式标记以及其他命名空间中 我们也提到了模
  • Laravel 5:违反完整性约束:1062 - 多对多

    我需要以下方面的一些建议 我有两次迁移 就像这样 Schema create plates function Blueprint table table gt increments id table gt integer serial nu
  • 按日期比较对象(实现 Comparator)

    我有一个 java People 对象 public class People String lastname String firstname String gender String datebirth String fcolor pu
  • AWS - 使用 EIP 访问私有子网中的实例

    我想使用 EIP 访问我的私有子网中的一些实例 有办法吗 我知道这没有多大意义 但让我详细解释一下 我有一个带有 2 个子网的 VPC 192 168 0 0 24 公共子网 已附加 EIP 192 168 1 0 24 私有子网 它们之间
  • 是否可以将文字值传递给 C++ 中的 lambda 一元谓词?

    给出以下在地图上进行反向查找的代码 map