C++ STL : list with Pointers - Iterator cannot access?

标签 c++ list stl

我正在为一个包含我的“对象”对象指针的 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)方法;

这里有什么问题?

我无法通过迭代器访问列表中的对象?

最佳答案

你需要(*i​​ter)->print();

由于您有一个指向指针的迭代器,因此您必须首先取消引用迭代器(这会为您提供 Object*),然后箭头会取消引用 Object * 并允许调用打印。

关于C++ STL : list with Pointers - Iterator cannot access?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6454281/

相关文章:

c++ - 如何子类化由特征选择的父类(super class)?

c++ - 为什么不允许使用赋值语法进行 auto_ptr 初始化

c - 链接列表递归函数,从列表中删除奇数值。 (C)

c++ - 以下程序中创建的用于 map 初始化的临时变量在哪里

c++ - 为什么 scoped_ptr 不能与 STL 容器一起使用?

c++ - QNetworkReply 在发出完成信号时抛出 SIGSEGV

c++ - 如何在 C++ 中正确使用命名空间?

Python 从一个 CSV 文件读取,如果存在元素匹配,则从另一个 csv 中搜索相应行

java - 如何在 Java 中打印从上到下读取的 ArrayList?

c++ - 使用哪个排序的 STL 容器来通过特殊键进行快速插入和查找?