typename vector<T>::iterator A;
Должно быть
typename vector<T>::const_iterator A;
То же самое для B
Обновление
Мои навыки C ++ ржавые, но
Поскольку два vectors
, переданные для слияния, являются константными ссылками, вы не можете использовать стандартный итератор для перемещения по ним, потому что стандартный итератор позволяет изменять содержимое вектора. Следовательно, вы должны использовать const_iterator
, что не позволит вам изменять векторное содержимое.
Извиняюсь, если мой C ++ Fu не на пустом месте, я помню достаточно C ++, чтобы решить проблему, но не использовал C ++ в гневе. , , вау 7 лет (неужели это так долго? Убей меня, но я старею).
Как я уже сказал, не стесняйтесь редактировать этот ответ, если вы можете дать более подробные объяснения.