c++ - 制作返回对数据成员的 const 引用的 lambda 的最简洁方法?
问题描述
随着对的投影的出现std::views::transform
和添加,需要一个返回对其参数的数据成员的引用的函数变得很普遍。例如,以下代码将容器链接在一起:std::algorithm
const
#include <ranges>
#include <vector>
struct S
{
std::vector<int> v;
};
int main()
{
std::vector<S> structs;
auto get_v = [](S const &s) -> auto& { return s.v; };
auto chain = structs | std::views::transform(get_v);
auto joined = chain | std::views::join;
}
这行得通,但是要构造的 lambdachain
有点笨拙。有更好的方法吗?
作为比较的理想选择,在 Python 中我们可以编写
chain = (s.v for s in structs)
解决方案
推荐阅读
- r - 如何在 plot.gam 中增加多个绘图的边界线宽度
- ios - Swift:动画按钮参数(插图,字体大小等...)
- android - Android:如何在应用程序屏幕上制作自定义对话框?
- python - Jax 中的 vmap ops.index_update
- swift - Swfit如何用promise初始化一个变量?
- html - 在 Outlook Windows 中的表格元素中添加了额外的填充
- arrays - 如何在 C 中按字母顺序对指向字符 char** 的指针进行排序?
- java - 我可以使用优化实验在 Anylogic 中实现多目标优化问题吗?
- php - 如果排名不存在,laravel 在循环中添加数量
- sql - 生成删除查询