我有一些函数。
如果我忽略向量是原始对象的引用,我会得到向量的副本。但为什么迭代器不需要成为引用呢?例如,如果我想要遍历向量,打印每个元素,并且希望在遇到向量结尾时停止,除非我传递向量的引用,否则迭代只会持续遍历第一个向量副本。但如果我传递一个引用,迭代将通过原始向量对象进行。但为什么迭代器没有像没有引用的向量那样被复制呢?
void print_elem(const std::vector<int>::iterator it, const std::vector<int> &vec) {/*.....*/}
如果我忽略向量是原始对象的引用,我会得到向量的副本。但为什么迭代器不需要成为引用呢?例如,如果我想要遍历向量,打印每个元素,并且希望在遇到向量结尾时停止,除非我传递向量的引用,否则迭代只会持续遍历第一个向量副本。但如果我传递一个引用,迭代将通过原始向量对象进行。但为什么迭代器没有像没有引用的向量那样被复制呢?