The list class is designed to keep you away from raw access to pointers (That's why iterators were invented). The other problem you face is that when a list is updated the iterators become invalidated, so you can't store them easily either. Perhaps there is a way around this limitation. What is the purpose of keeping track of the addresses (pointers?) of the VIP entries?