@nprofile1q... @nprofile1q... Yep.
E.g. game objects on a map store an intrusive linked list of triggers using indices, which is used for not having something silly like an std::vector per object, and for trivial serialization. These triggers fire when a certain event happens.
The actual bulk of the work is done in the map's Tick() though, where I iterate through the array of triggers and evaluate them.