Description
At present, GetInfosets
on a game allocates a container which it fills with smart-pointer references to all of the information sets in the game. This is obviously not very efficient and scales poorly!
We have now developed a template collection class which efficiently represents (and iterates) collections, such as the set of information sets belonging to a player. However, this doesn't apply directly to this case, because there's two levels of iteration - to iterate on players first and then the information sets by player.
(In C++20 we have coroutines which would make the writing of the iterator for this much easier - but for now we are sticking with C++17 so there is a bit of housekeeping that needs to be done to write the required iterator!)