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