Re[3]: Связь итератора и указателя списка STL
От: gear nuke  
Дата: 12.02.08 15:37
Оценка:
Здравствуйте, <Аноним>, Вы писали:

Короткий ответ уже дан, но не ради флейма, а поскольку работу то надо сделать, попробую дать длинный.

А>Нужно передать указатель все-таки на конкретный элемент. Непонятно только, какая связь между итератором и указателем . Итератор — это и есть объект-оболочка указателя?


Все раелизации STL разные, но идут с исходниками. Под конкретную реализацию можно сделать хак. Правда разобраться, зачем и как используется allocator::rebind вряд ли сразу удастся.

Но достаточно посмотреть, что представляет из себя нода (и обязательно свериться с отладчиком). Итератор — суть указатель на неё. Вот например из MSVC 2005
    struct _Node
        {   // list node
        _Genptr _Next;  // successor node, or first element if head
        _Genptr _Prev;  // predecessor node, or last element if head
        _Ty _Myval; // the stored value, unused if head
        };

Тут ничего необычного для С-шника нет, обычный интрузивный список, какой-нибудь макрос CONTAINING_RECORD должен сработать.

Хотя все же стоит обратить внимание на другие ответы, что бы после смерти в гробу не переворачиваться
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.