You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何遍历指向Event对象的指针列表?C++迭代代码报错排查

问题解决方法

错误根源

报错信息明确指出:this->el是指针类型(EventList*,也就是list<Event*>*),所以访问它的成员函数begin()/end()必须用->运算符,而不是.。你觉得用箭头不是本意,核心问题是你可能误将类成员el声明成了指针,而非实际的EventList对象。

两种解决方案

方案1:修正成员声明(推荐)

找到CS302_Midi类中el的定义,将:

EventList* el;

修改为:

EventList el;

修改后,你的原遍历代码就能正常运行,无需使用箭头运算符,迭代器的解引用写法(*it)->key也是正确的——*it取出迭代器指向的Event*指针,再用->key访问Event对象的成员。

方案2:保留指针时的写法(不推荐)

如果因特殊需求必须让el保持指针类型,需调整遍历代码,用->访问指针的成员函数:

EventList::iterator it;
for (it = this->el->begin(); it != this->el->end(); ++it){
    cout << (*it)->key << endl;
}

内容的提问来源于stack exchange,提问作者Ian Burns

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 16:05:05