Добрый день, Я застрял в глупой проблеме на C++.Проблема с std :: vector
Скажем, у меня есть итератор, называемый it1, который идет через значение вектора, содержащий указатели на класс, мы будем называть это C:
std::vector<C*>::iterator it1;
Но C не один: он имеет много подклассов , которые имеют одинаковые атрибуты и методы, которые я ищу с ним1, хотя их реализация может отличаться или не отличаться. Что мне делать, если бы я хотел, чтобы итератор работал, хотя элементы (или лучше, указатели) не только класса C, но и его дочерних элементов?
Что я думал, было что-то с помощью шаблонов, хотя это сделало бы итерации небезопасными, так как я не знаю, как ограничить шаблон только C и его подклассами. Какие-либо предложения?
Редактировать: да, я говорил о рекурсивной структуре данных.
Редактировать 2: Ну, похоже, что это не было ошибкой итератора. Мой код работал нормально, я задал вопрос, потому что я собирался внедрить изменения, и я не знал, что делать. Извините, если это неясно.
Вы говорите рекурсивную или плоскую структуру данных? Вы используете термины, которые делают различие запутанным. – robert 2010-11-24 08:25:53
Он уже ограничен С и его детьми. – 2010-11-24 08:26:41