1

我在 C++ 中使用向量,

vector<Agents> agentlist;

为什么这行得通,

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

这不是吗?

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

使用 取消引用迭代器是否有效*

4

2 回答 2

2

请参阅运算符 Precedence.优先级高于*

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

表示为:

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

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

你需要:

 agentlist.begin()->print();  or  (*agentlist.begin()).print();
于 2013-08-10T12:48:56.193 回答
2

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

于 2013-08-10T12:49:09.880 回答