Ich habe zwei Karten. Ein (a) sind Karten eindeutige Kennungen für zugewiesene Ressourcen. Die anderen (b) karten eindeutige Kennungen für Ressourcenprototypen.
Ich möchte die beiden Karten aufnehmen und die Elemente finden, die in A, aber nicht in B sind, damit ich die Ressourcen veröffentlichen kann.
Ich möchte diese Gegenstände in B finden, aber noch nicht in A, damit ich den Prototyp nehmen und ihn als Ressource zuweisen kann. Nach Abschluss werde ich diese nicht benötigten Elemente von Karte A entfernen und neue Elemente zu Map A hinzufügen. Mein Ziel ist es, diese beiden Karten zu synchronisieren, obwohl sie unterschiedliche Werttypen haben.
Code: Select all
std::map allocatedResources;
std::map resourcePrototypes;
Ich möchte std :: ranges :: set_differces zweimal ausnutzen, eine für jede Richtung, um zwei Vektoren zu ergeben:
Code: Select all
std::vector resourcesNoLongerNeeded;
std::vector prototypesToAllocateAsResources;
Ich habe versucht, std :: set_differences mit einer benutzerdefinierten Projektion für jeden Typ zu verwenden, aber ich kann die Funktion nicht mit den verschiedenen Werttypen kompilieren. Ich kann dies offensichtlich einfach so lange tun, aber ich dachte, ich würde versuchen, die STD :: Ranges Methoden zu nutzen.