【发布时间】:2013-09-02 07:29:07
【问题描述】:
我有一些功能
void print_elem(const std::vector<int>::iterator it, const std::vector<int> &vec) {/*.....*/}
如果我忽略了向量是对原始对象的引用,我会得到向量的副本。为什么迭代器不一样?为什么迭代器也不需要是引用?
例如,如果我想遍历向量,打印每个元素并想在到达向量末尾时停止,除非我传递对向量的引用,否则迭代只会连续迭代第一个向量副本。但是,如果我通过引用,则迭代会通过原始向量对象。但是为什么迭代器没有像没有引用的向量那样被复制呢?
【问题讨论】: