c++ - 将 std::vector<boost::shared_ptr<T>> 转换为 std::vector<T*> 的优雅解决方案

标签 c++ boost std

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

有没有办法转换:

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

进入非安全版本:

std::vector<T*>

不执行 for 循环并在原始 vector 的每个元素上使用 .get()?

最佳答案

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

关于c++ - 将 std::vector<boost::shared_ptr<T>> 转换为 std::vector<T*> 的优雅解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11985753/

相关文章:

c++ - 将嵌套的 C 循环转换为单个 boost 索引?

c++ - 与库相关的错误

c++ - X11 应用程序的最佳实践 - 每个应用程序或每个窗口一个 XOpenDisplay?

c++ - 如何从 `var (*)(void*, var)` 中获取 C 指针(如 `boost::function<var (void*, var)>` )?

c++ - 可能会失败的 "post-initialization"的 eps 解析器

c++ - 什么可以使 std::map 找不到它的键之一?

strrchr 的 C++ 字符串等效项

c++ - 正则表达式替换两个匹配项之间的所有匹配项

c++ - 为什么我的代码打印 r 值 2 次而不是 rvalue 和 lvalue?

c++ - 关于 C++ 指针