Auswahl des optimalen C 11-Standardbibliothekscontainers
Der klassische Spickzettel „C-Container-Auswahl“ bietet Anleitung zur Auswahl des geeigneten Containers für bestimmte Nutzungsszenarien. Es fehlt jedoch eine aktualisierte Version für C 11.
Zum Ausgleich finden Sie hier einen Text-Workflow, der bei der Containerauswahl hilft:
1. Semantik zuerst
Assoziative Container:
- Verwenden Sie assoziative Container, wenn Sie eine Suche nach einem einzelnen Schlüssel benötigen.
- Wählen Sie „Geordnete Container“, um die Sortierung beizubehalten Elemente.
- Für separate Schlüssel-Wert-Paare verwenden Sie Map; Für nur Schlüssel sollten Sie „Set“ in Betracht ziehen.
- Duplikate mit „Multi“-Präfixen aktivieren.
Einfache Sequenzcontainer:
- Auswählen ein geeigneter Behälter basierend auf den folgenden Kriterien:
2. Speicherstabilität
- Verwenden Sie Listen, wenn Elemente während Containeränderungen im Speicher bleiben müssen.
- Standardmäßig Liste; Verwenden Sie Forward_List nur, um den Speicherbedarf zu reduzieren.
3. Dynamische Größenanpassung
- Verwenden Sie Arrays, wenn die Größe zur Kompilierungszeit bekannt ist und konstant bleibt und Elemente standardmäßig konstruierbar sind oder mit geschweiften Klammern initialisiert werden.
4. Doppelend
- Wählen Sie Deque, wenn Sie Elemente an beiden Enden hinzufügen oder entfernen müssen.
- Andernfalls entscheiden Sie sich für Vector.
Beispiele
Szenario:Abrufen von Personendaten basierend auf eindeutigen Angaben IDs.
- Wir benötigen eine Suchfunktion (Assoziativer Container).
- Reihenfolge ist irrelevant (Ungeordnet).
- Schlüssel (IDs) sind von Werten (Karte) getrennt. .
- Keine Duplikate (Nr "multi").
Ergebnis: std::unordered_map.
Hinweis: Wenn keine besonderen Einschränkungen vorliegen anwenden, Vector wird als Standardauswahl für einfache Sequenzcontainer empfohlen.
Das obige ist der detaillierte Inhalt vonWelchen C 11 Standard-Bibliothekscontainer sollte ich verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!