Это может быть ошибкой в старой версии gcc, но я предполагаю, что ошибка в вашем коде - вы не смогли #include <iterator>
. Вероятно, стоит только посмотреть дальше, если исправление не решит проблему.
С другой стороны, если вы используете reverse_iterator
, как показано (т.е. тело цикла равно cout << *r;
), вам, вероятно, следует просто использовать std::copy
:
std::ostream_iterator<char> output(std::cout);
// frontwards
std::copy(v.begin(), v.end(), output);
// backwards
std::copy(v.rbegin(), v.rend(), output);
Существует также copy_backwards
, но я не верю, что он будет делать то, что вы хотите.
Редактирование: Еще одна возможность рассмотреть: если добавление требуемого заголовка не работает, и вам действительно нужен обратный итератор, вы можете рассмотреть возможность использования STLPort вместо собственной библиотеки (по крайней мере старые компиляторы).