我正在为一个包含我的“对象”对象指针的 STL 列表而苦苦挣扎。
我声明:
list<Object*> objectlist;
并通过以下方式插入:
this->objectlist.push_back(new Object(address,value,profit));
并尝试像在 map 和其他中一样进行迭代:
list<Object*>::iterator iter;
iter = this->objectlist.begin();
while(iter != this->objectlist.end())
{
iter->print();
}
其中 print() 是 Object 类的公共(public)方法;
这里有什么问题?
我无法通过迭代器访问列表中的对象?
最佳答案
你需要(*iter)->print();
由于您有一个指向指针的迭代器,因此您必须首先取消引用迭代器(这会为您提供 Object*
),然后箭头会取消引用 Object *
并允许调用打印。
关于C++ STL : list with Pointers - Iterator cannot access?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6454281/