转换shared_ptr类型向量的迭代器

Vij*_*dra 6 c++ boost iterator shared-ptr

如何构建shared_ptr类型向量的迭代器?考虑以下示例:

typedef boost::shared_ptr < MyClass > type_myClass;

vector< type_myClass > vect;
vector< type_myClass >::iterator itr = vect.begin();

while(itr != vect.end())
{
   //Following statement works, but I wish to rather cast this 
   //to MyClass and then call a function?
   (*itr)->doSomething(); 
}
Run Code Online (Sandbox Code Playgroud)

Dav*_*eas 8

你不想强制转换,而是提取对象的引用:

MyClass & obj = *(*it); // dereference iterator, dereference pointer
obj.doSomething();
Run Code Online (Sandbox Code Playgroud)