I am learning c++. I have learned referencing allow us to avoid copying. So I tried to get an iterator of a vector as reference to overwrite its elements.
// simplified function
std::vector<int>::iterator& GetIterator(std::vector<int>& vec) {
return vec.begin(); // compiler said that here is an error.
}
But compiler give me an error message and suggests to use const reference. I would not like to use const. Why cannot it get non-const reference? Or how to avoid copying of iterator? Thank you very much.
vec.begin()returns by value. So think about what that reference would refer to.