【问题标题】:How to use boost::algorithm::join with std::vector of objects?如何将 boost::algorithm::join 与对象的 std::vector 一起使用?
【发布时间】:2013-10-25 13:55:20
【问题描述】:

我了解在std::string 的向量上使用boost::algorithm::join,但是如何将它用于std::vector<std::unique_ptr<Foo>>

我想我正在寻找某种可以传入 lambda 的应用函数,这样我就可以将 std::unique_ptr 转换为 std::string。

【问题讨论】:

  • join() 在您的Foo 上的语义是什么?
  • 我想说你需要构建一个带有伪迭代器的伪容器作为boost::algorithm::join 的第一个参数传递。就个人而言,我认为这是不值得努力的可怕样板代码。 “先字符串化,然后加入”很可能是更易于阅读的方式。

标签: c++ algorithm boost c++11 vector


【解决方案1】:

找的是joinsource code,好像没办法。返回值必须是 range_value<SequenceSequenceT>::type 类型,在您的情况下映射到 std::unique_ptr<Foo>。你可以std::transform你的vectorstd::vector<std::string>,有点浪费。或者,您可以实现自己的 join 版本,在转换过程中应用转换本身。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-12-16
  • 2013-03-24
  • 2013-02-08
  • 2012-05-02
  • 1970-01-01
  • 1970-01-01
  • 2015-05-04
  • 1970-01-01
相关资源
最近更新 更多