> Ю> Таким образом, через такие маздайные изобретения, как lParam и прочие,
> лучше
>
> Ю> передавать указатель на итератор :-) Или указатель на структуру, в
> которой
>
> Ю> есть итератор. Или еще как-нибудь, но не сам итератор.
>
> Я думал об этом... Но если хранить указатель на итератор, то где
> хранить сам итератор (он уже не может быть локальной переменной!!!)
Почему не может? Если та функция, которая имеет в качестве локальной
переменной этот итератор, будет присутствовать в стеке вызовов в момент
использования этого итератора, то все ОК :-)
Или, если нельзя сделать локальным, то, наверно, можно сделать глобальным? В
таком случае вообще ничего передавать не придется. :-)
Или вообще выделить под него память динамически. :-)
> Получается, что нужно заводить еще и список итераторов, используемых
> объектом, хранить их в объекте... все это, ясное дело, не подходит,
> т.к. отследить все это просто невозможно.
> Реально sizeof от итератора дает 4 байта, но всегда ли это так?
Не знаю. :-) Я посмотрел, у мультимэпа 4, у списка тоже. Но я не думаю, что
на это можно полагаться.
> Есть еще идея, но опять знаний не хватает. Хранить указатели на сами
> элементы и пользоваться какими-то функциями преобразования, которые по
> указателю на элемент и самой переменной контейнера формируют итератор,
> указывающий на этот элемент. Есть ли такие функции?
Я не знаю таких функций...
Я вот думаю, а действительно ли нужен итератор? :-) Если интересует только
то значение, на которое он указывает, и нет необходимости перемещаться по
контейнеру, то хватит простого указателя.
А если нужен итератор, то можно найти это значение в этом мультимэпе. :-)
Сначала определить верхнюю и нижнюю границы (upper_bound() и lower_bound()
соответственно), а потом линейно найти тот элемент, адрес которого совпадает
со значением указателя. :-)
Изврат? :-) Согласен.
Номер выпуска : 4800
Возраст листа : 671 (дней)
Количество подписчиков : 526
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/406364
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru