如何解决在C ++中将shared_ptr的向量转换为原始指针的向量
我想知道是否有其他方法可以将共享指针的向量转换为原始指针的向量,而不是通过循环来完成:
\\vecShared - initial vector of shared pointers
std::vector< double* > vecRaw;
for(unsigned int i=0; i<vecShared .size(); ++i)
vecRaw.push_back(vecShared[i].get());
如果还有其他方法,使用这些方法是否有优势?
解决方法
当然
vecRaw.reserve(vecShared.size());
std::transform(vecShared.cbegin(),vecShared.cend(),std::back_inserter(vecRaw),[](auto& ptr) { return ptr.get(); });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。