【问题标题】:"Mapping" a function over a set to create another set在一个集合上“映射”一个函数以创建另一个集合
【发布时间】:2016-12-21 01:26:37
【问题描述】:

在函数式语言中,如果您有 S(其元素类型为 T 的集合)和 f(函数 : T -> U),则可以编写 map f S(或某些特定于语言的版本那)创建一组Us。

是否可以在 C++11 中使用 for_each 或其他一些 STL 构造实现类似的功能?

【问题讨论】:

标签: c++ stl functional-programming set mapping


【解决方案1】:
std::set<U> SetOfUs;
std::transform(S.begin(), S.end(), std::inserter(SetOfUs, SetOfUs.begin()), f);

【讨论】:

  • 如果能够以函数方式编写它会很不错,尤其是将 set 声明为 const 而不是修改它...
  • 编写一个在其实现中执行此操作的函数,然后按值返回SetOfUs
  • 我正在检查我是否遗漏了一些执行此操作的标准库 fn - 看起来答案是否定的。
猜你喜欢
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多