我目前正在尝试使用std::shared_ptr和std::weak_ptr替换我的代码中的某些部分。在许多部分中,我有std::weak_ptrs(以前是裸指针)的std::vectors,并使用std::find在数组中查找特定指针。这不适用于弱指针,因为它们由于各种原因没有实现==运算符。我必须坚持使用std::weak_ptr以避免循环依赖。那么我的选择是什么?我应该放弃使用弱指针而改回使用裸指针吗?
示例
//_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);
谢谢