Also suchte ich mich um und stellte fest, dass wir Multi-Karte verwenden, können eine Reihe von gleichwertigen Tasten auf verschiedene Werte abzubilden. Ich frage mich, wie ich das Gegenteil machen soll? Das heißt, verschiedene Schlüssel auf denselben Wert zu legen? Gibt es dafür eine stl-Datenstruktur?Mapping verschiedene Schlüssel auf den gleichen Wert in C++
Antwort
können Sie haben eine std::map
, so dass mehrere Tasten auf den gleichen Wert zuordnen. Da ist nichts dagegen. Was Sie jedoch wahrscheinlich suchen, ist die Fähigkeit, alle Schlüssel zu finden, die auf einen bestimmten Wert abgebildet werden, ohne über die gesamte Map zu iterieren. Ich denke nicht, dass es dafür eine solche Datenstruktur gibt.
@Sahu Yea sind eigentlich ich eine Karte erstellt, die wie folgt aussieht: std :: map
@ dl23lin, in diesem Fall sollten Sie diese Frage löschen und eine andere Frage mit dem Code, den Sie versucht haben, fragen, was Sie erwarten zu sehen, was tatsächlich zu sehen ist. Das wird nützlicher sein als diese Frage. –
Ein normaler std::map
(oder std::unordered_map
) kann das tun. Sie haben ein paar Möglichkeiten, wie man das tun:
- Normaler Schlüssel-Wert-Speicher, in dem Sie die Werte nach Bedarf
- normaler Schlüssel-Wert-Speicher kopieren, aber wo der Wert ist ein Zeiger auf die eigentlichen Daten dass gemeinsam genutzt werden kann, gegebenenfalls ein
std::shared_ptr
- verwenden irgendeine Art von Struktur (a
std::tuple
vielleicht) mit den Tasten zu sammeln (obwohl es wahrscheinlich mehr Mühe Umgang mit dieser als es wert ist, nichts, was ich wirklich empfehlen) - verwenden Boost multi-index containers
mit Boost Sie haben eine fertige Lösung, die Sie gerade verwenden können, und wenn Sie bereits Erhöhung in Ihrem Projekt verwenden (es ist ein großer Satz von Bibliotheken, und ergänzt die Standard-Bibliothek gut) Ich denke, es ist ein Kinderspiel zu holen diese Lösung.
- 1. den gleichen Wert auf mehrere Schlüssel in einem Wörterbuch Vergeben
- 2. Java-Datenstruktur, um mehrere Schlüssel auf den gleichen Wert abzubilden
- 3. Verschiedene Benutzer erhalten den gleichen Cookie-Wert in .ASPXANONYMOUS
- 4. Mehrere Variablen verwenden den gleichen Wert für verschiedene IDs
- 5. C: Array von Zeigern auf den gleichen Wert zeigen
- 6. Zwei verschiedene Klasseninstanzen geben den gleichen Hashcode
- 7. die Schlüssel, Wert, den Wert
- 8. $ Uhr nicht feuern auf den gleichen Wert
- 9. MRJob gleichen Schlüssel wird an verschiedene Reduzierungen gesendet
- 10. Verschiedene Fundamental-Matrix aus den gleichen Projektionsmatrizen
- 11. PHP verschmelzen zwei Arrays auf dem gleichen Schlüssel UND Wert
- 12. Mehrere Accessoren für den gleichen Wert in C#
- 13. OpenCV: warten auf verschiedene Schlüssel?
- 14. Wie JSON-Mapping auf mehreren JSON-Objekt mit dem gleichen Schlüssel
- 15. Ruby - alle Schlüssel in Hash mit dem gleichen Wert erhalten
- 16. So erfassen Sie den gleichen Map-Wert
- 17. Generische Erweiterungsmethode für verschiedene Typen mit den gleichen Eigenschaften
- 18. Verschiedene Boxplots auf der gleichen OX-Position
- 19. Ändern Sie den Schlüssel in C#
- 20. Assoziatives Array, Summenwert von den gleichen Schlüssel
- 21. PHP - Merge zwei Arrays auf den gleichen Schlüssel
- 22. Zeigen Sie zwei Variablen auf den gleichen Wert in Python
- 23. den gleichen Wert vieler Wörterbuch in Python
- 24. PowerShell WMI zeigt den gleichen Wert
- 25. mehrere Schlüssel für einen Wert in Yam
- 26. gleichen Schlüssel bereits hinzugefügt
- 27. C++ sizeof anderes Ergebnis für den gleichen Wert
- 28. Mapping Composite-Schlüssel in fließendem NHibernate
- 29. Hashtable Schlüssel holt den falschen Wert
- 30. Boltdb-Schlüssel-Wert Datenspeicher rein in Go
Eine 'map' erfordert keine eindeutigen Werte. Nur Schlüssel. – cHao
einfach die Karte umdrehen, so dass die Werte die Tasten und umgekehrt –