我是stl c ++的新手,有人可以解释[](int x)吗? [复制]

Posted

技术标签:

【中文标题】我是stl c ++的新手,有人可以解释[](int x)吗? [复制]【英文标题】:I'm new in stl c++, someone can explain [](int x)? [duplicate] 【发布时间】:2021-06-28 03:29:19 【问题描述】:
is_partitioned(vect.begin(), vect.end(), [](int x)
     return x%2==0;)? cout << "Vector is partitioned": cout << "Vector is not partitioned";
    cout << e

ndl;

由于[](int x),我无法理解此代码。请帮忙

【问题讨论】:

这个应该有用:***.com/q/388242/2079303 您对以下建议的答案有任何疑问或问题吗? 【参考方案1】:

[](int x)实际上只是未命名lambda function object的一部分:

// Return true if x is divisible by 2, false otherwise
[] (int x)  return x%2 == 0;  // lambda that acts as a predicate

[] 表示捕获列表

(int x) 是一个参数列表

... 部分是正文

后两者就像在常规函数中一样。

你提供这个函数(函数对象)作为算法is_partitioned的谓词,所以有一个自定义的谓词。请注意,在这种情况下,is_partitioned 具有以下形式:

is_partitioned(first, last, predicate); // Where the predicate is the lambda

更多信息,请参阅documentation。

【讨论】:

以上是关于我是stl c ++的新手,有人可以解释[](int x)吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

有人可以解释 JPA 和 Hibernate 中的 mappedBy 吗?

什么#include 真的在c程序中做

有人可以用*非常*简单的术语解释反射包 API 吗?

有人可以解释此正则表达式的正则表达式

有人可以解释 C 使用 #define UMAX (a, b) ((a) > (b) ? (a) : (b)) 指令的硬逻辑错误,该指令返回较低的值,在 2 个编译器中

有人可以解释一下 C 中 signal() 语法的含义吗? [复制]