我是 C++ 新手,目前正在学习模板和迭代器。我看到了一些实现自定义迭代器的代码,我很想知道这两个iterator
参数之间的区别是什么:
iterator & operator=(iterator i) { ... i.someVar }
bool operator==(const iterator & i) { ... i.someVar }
他们为特定的迭代器实现 = 和 == 运算符。假设迭代器类有一个成员变量“someVar”,为什么一个运算符使用“iterator i”实现,另一个使用“iterator & i”实现?两个“i.someVar”表达式之间有什么区别吗?
我用谷歌搜索了一下,发现了这个问题 地址数组 - 有一个&符号和没有&符号的区别
答案是“数组被转换为指针,它的值是数组中第一个东西的地址。” 我不确定这是否相关,但这似乎是我能找到的唯一有效解释。
谢谢!