У меня проблемы с использованием векторов, итераторов, а затем с использованием const
.
Для некоторого контекста я пытаюсь создать метод записи для vector<string>
, чтобы я мог легко напечататьвсе строки в векторе.
Вот фрагмент кода:
void ArrayStorage::write(ostream &sout) const{
for (vector<string>::iterator stringIt = _dataVector.begin();
stringIt < _dataVector.end();
stringIt++){
sout << *stringIt;
}
}
ostream& operator<<(ostream &sout, const ArrayStorage &rhs){
rhs.write(sout);
return sout;
}
Когда я пытаюсь это сделать, я получаю сообщение об ошибке в строке 2:
не может преобразовать из 'std::_Vector_const_iterator<_Myvec>
' в 'std::_Vector_iterator<_Myvec>
'.
Поэтому мне нужно удалить const
из конца метода записи, а затем для operator<<
чтобы работать, я должен удалить const
из параметра rhs.
Почему это?Я не пытаюсь изменить учеников, поэтому не понимаю, что происходит ... Что мне не хватает?