迭代程序取消引用

Iterator Dereferencing

本文关键字:引用 取消 程序 迭代      更新时间:2023-10-16

我在c++中使用向量,

vector<Agents> agentlist;

,为什么这样做

(agentlist.begin() )->print();

而这不是吗?

*(agentlist.begin() ).print();

使用*取消引用迭代器不是有效的吗?

参见运算符优先级,.的优先级高于*

*(agentlist.begin()).print();

表示为:

*((agentlist.begin()).print());

当迭代器并没有.print()函数调用时,编译器会抛出编译错误。

您需要:

 agentlist.begin()->print();  or  (*agentlist.begin()).print();

尝试使用(*(agentlist.begin())).print();:)