首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >std::std::weak_ptr向量和std::查找

std::std::weak_ptr向量和std::查找
EN

Stack Overflow用户
提问于 2012-03-22 14:49:45
回答 1查看 2.1K关注 0票数 3

我目前正在尝试用std::shared_ptr和std::weak_ptr替换代码的某些部分。在许多部分中,我都有std::weak_ptrs的std::向量(以前是原始的ptr),并使用std::find在数组中找到一个特定的指针。这不适用于弱指针,因为它们由于各种原因没有实现==操作符。为了避免循环依赖,我必须坚持使用std::weak_ptr。我的选择是什么,我应该回到使用原始指针而不是弱指针吗?

示例

代码语言:javascript
运行
复制
//_window is a shared_ptr that I want to find in a vector of weak_ptrs
WindowWeakPtrArray::iterator it = std::find(m_windows.begin(), m_windows.end(), _window); 

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-22 14:54:26

在不考虑设计的情况下,您可以使用std::find_if和一个自定义比较器来验证weak_ptr是否有效,然后比较内部指针是否有效。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9824664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档