我在c ++中使用了一个向量,
vector<Agents> agentlist;
为什么这样做,
(agentlist.begin() )->print();
这不是吗?
*(agentlist.begin() ).print();
使用*
取消引用迭代器是否有效?
答案 0 :(得分:2)
请参阅operator Precedence,.
的优先级高于*
*(agentlist.begin()).print();
表示为:
*((agentlist.begin()).print());
虽然迭代器没有.print()
函数调用,但编译器会抛出编译错误。
你需要:
agentlist.begin()->print(); or (*agentlist.begin()).print();
答案 1 :(得分:2)
尝试使用(*(agentlist.begin())).print();
:)