我在 C++ 中使用 vector ,
vector<Agents> agentlist;
为什么这样做,
(agentlist.begin() )->print();
这不是吗?
*(agentlist.begin() ).print();
使用 *
取消引用迭代器是否有效?
最佳答案
参见 operator Precedence , .
的优先级高于 *
*(agentlist.begin()).print();
表示为:
*((agentlist.begin()).print());
虽然迭代器没有.print()
函数调用,编译器会抛出编译错误。
你需要:
agentlist.begin()->print(); or (*agentlist.begin()).print();
关于c++ - 迭代器取消引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18162030/