Hallo,
ich arbeite gerade mit maps, die sind klassischer Weise eindimesional. Ein Key weis auf eine Element.
Nun würde das gerne 2 - dimensional machen, also die kombination aus 2 Keys auf eine Element zuweisen.
etwa
std::map verheiratet;
Map[Thorsten, Anna] = true;
Map[Anna, Thorsten] = true;
Map[Thorsten,Gabi] = false;
…
Und nun will ich wissen, ob zwei Personen verheiratet sind
if(Map.find(Thorsten,Gabi)!=Map.end())
{
irgendwas
}
Der Code geht so natürlich nicht, ich hoffe es bescheibt meine Idee.
Dieses Beispiel dient nur der Veranschaulichung, da es zu viel Aufwand ist das ganze Prinzip zu erklären, Map[Thorsten]=Anna ist also leider für mich keine Lösung
Der Code geht so natürlich nicht, ich hoffe es bescheibt meine Idee.
In der Realität geht es mir darum die Elemente eine sehr dünn besetzten Matrix zu verwalten. Eine einfach 2-dim Matix [vector] wäre zu speicheraufwändig. Zur Zeit habe ich einen vektor aus Maps, auf den ich von einer anderen map mappe (welche ein Satz), leider dauert die Suche hier zu lange. Dabei lege ich, sobald der erste Key einmal gesetzt wird, eine „Zielmap“ in den Vector. Das Ziel der ersten Map ist ein Pointer auf die zweite Map, und in der wird dann der 2. Key gesucht.
Ist das schon der Beste weg oder wüsste noch jemand etwas?
Wie würdet ihr überhaupt Elemente eine sehr dünn besetzen Matrix speichern?