【发布时间】:2013-03-11 10:16:59
【问题描述】:
我有一个 As with 容器
struct A { int f(); }
容器提供了迭代器,我们可以在这个例子中假设它是一个 std::vector。所以:
std::vector<A> As;
现在我想将 A::f 提供的值复制到第二个容器中
std::vector<int> fs;
虽然我可以简单地进行迭代,但作为练习,我尝试使用 boost bind / boost 迭代器来解决这个问题。到目前为止我尝试的是这样的:
std::copy(
boost::make_transform_iterator
(As.begin(), boost::bind(&A::f, _1)),
boost::make_transform_iterator
(As.begin(), boost::bind(&A::f, _1)),
std::back_inserter( fs )
);
有人知道这是怎么做到的吗?
【问题讨论】:
标签: c++ boost binding boost-bind boost-iterators