转换std :: vector <boost :: shared_ptr <t>&gt;的优雅解决方案到std :: vector <t *> </t *> </boost :: shared_ptr <t>

时间:2012-08-16 11:01:24

标签: c++ boost std

我没有找到完全相同的问题。

有没有办法转换:

std::vector<boost::shared_ptr<T>>

进入非安全版本:

std::vector<T*>

没有执行for循环并在原始向量的每个元素上使用.get()?

1 个答案:

答案 0 :(得分:9)

std::transform(safe.begin(), safe.end(), std::back_inserter(unsafe),
               boost::bind(&boost::shared_ptr<T>::get, _1));