我正在使用 lower_bound() 在 weak_ptr 的排序向量中进行搜索
vector<weak_ptr<A> >::iterator findA( const string & id ) const
{
sa = make_shared<A>( id );
a = sa;
return lower_bound( owners.begin(), owners.end(), sa,
[] ( const weak_ptr<A> & l, const weak_ptr<A> & r )
{
return (l.lock()->getID() < r.lock()->getID());
} );
}
在哪里,类有一个私有sa
方法和一个公共方法。调用时会导致段错误。我猜是因为,它返回 empty 。shared_ptr<A>
A
string ID
getID
findA
getID
lock()
shared_ptr
我该如何解决?