c++ - 迭代器取消引用

标签 c++ vector stl iterator dereference

我在 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/

相关文章:

c++ - munmap_chunk:使用 std::vector 更改数据存储位置时的无效指针

c++ - 用于通信的二进制缓冲区,C++

c++ - 在模板类列表/节点程序中获取错误

c++ - 在 Xcode Cpp 中使用套接字

matlab - 出现次数的向量

c++ - 显示深度优先搜索图遍历 C++

c++ - 优先队列不排序

c++ - 如何将正则表达式 vector 与一个字符串匹配?

c++ - 如何修复 "Overloaded member function not found"错误?

c++ - 重载 >> 继承类的运算符