Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > итераторы в 2005 студии.


Автор: nikakoi 24.8.2006, 13:07
Добрый день.
Подскажите пожалуйста..
Чтобы из итератора получить указатель нужно наспить &(*итеротор)
А в обратную сторону как сделать не знаюsmile 
Никто не знает как из указателя получить итератор???

Автор: _hunter 24.8.2006, 13:13
*итеротор (если правильно вопрос понял)

Автор: Mayk 24.8.2006, 13:30
а если имеется в виду, что
при наличии указателя на элемент в коллекции необходимо получить итератор, указывающий на тот же элемент в коллекции, то в общем случае никак. Только через find или подобное.

Автор: nikakoi 24.8.2006, 14:31
Mayk, 
угу... именно об этом говорилsmile(
чтобы find использовать надо переопределять == а это еще куча кодаsmile(
Других вариантов точно нет?

Автор: Earnest 24.8.2006, 15:39
Точно нет - операция разыменования необратима. 
Если, конечно, у тебя не вектор: тогда, поскольку гарантируется, что данные лежат непрерывным куском, можно итератор по указателю вычислить.
Цитата(nikakoi @  24.8.2006,  15:31 Найти цитируемый пост)
чтобы find использовать надо переопределять == а это еще куча кода

Нет, чтобы найти по указателю, оператор == не поможет: приличный оператор == должен сравнивать значения, а не адреса... Тут надо функтор писать для find_if. Но скорее всего, тебе надо пересмотреть дизайн, раз он к такой необходимости приводит.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)