My favorite data structure is probably a heap, although I've never implemented it in a proper project rather small beginner programs. From past experiences do you recall a scenario where you used a heap in a major project to help solve a problem? If so please do give some examples and anecdotes.
What do you mean by 'data structure'? 'heap' is rather an sorting algorithm.
I'm using it when it comes to priority. E.g. when drawing objects. The advantage is that the order remains the same unless an object has a higher priority.
I can't recall the last time I used a non-stl home rolled data structure period, not counting assisting homework here.
Heaps seem to do what they were designed to do well. I suspect that, like a tree, if you shovel it into a vector (using indices as the 'pointers') it can do both the heapish tasks and vectorish tasks making it quite efficient at a variety of things.
The only time I used a heap was to implement a priority queue in a simulator. This was before the STL.
The simulator processes events. Each event has a timestamp for when the event should happen (in simulator time) and the priority queue is sorted by timestamp. The simulator just picks the first item off the heap, executes it, and repeats. Executing an event usually generates other events that will occur in the future, so those get put into the heap.