6
我有一些功能傳遞一個迭代器和載體功能
void print_elem(const std::vector<int>::iterator it, const std::vector<int> &vec) {/*.....*/}
如果我離開了,該向量是對原始對象的引用,我得到的載體的拷貝。爲什麼迭代器不一樣呢?爲什麼迭代器不需要也是一個參考?
例如,如果我想遍歷矢量,打印每個元素,並希望停止當我擊中矢量的末尾,除非我通過一個引用的矢量迭代只是不斷迭代通過第一個矢量副本。但是,如果我通過參考,則迭代會通過原始矢量對象。但是爲什麼迭代器不能像沒有引用的向量那樣被複制呢?
那麼將一個迭代器作爲參考參數傳遞是否無關緊要?注意傳遞一個迭代器作爲函數的引用會導致錯誤是很有價值的;但它不是const_iterator時的情況。你碰巧知道爲什麼?造成後者的差異不是一個錯誤? -謝謝。 – jlstr