Stimmt es, dass der Index eine Memberfunktion ist, die den Wert eines Elements in einem Container zurückgeben kann, und ein Iterator ein Wert ist, der auf einen Container zugreifen, ihn durchlaufen und sich durch diesen bewegen kann?Der Unterschied zwischen Index und einem Iterator ist?
Antwort
Ein Index (oder Schlüssel) wird verwendet, um Daten in einem Container nachzuschlagen. Der einfachste Fall wären die Ganzzahlindizes eines Arrays, aber Container wie std::map
können fast jeden Typ als Index haben.
Ein Iterator ist eine Klasse, die eine Position in einem Container darstellt. Sie erhalten möglicherweise Zugriff auf einen Container mit einem Index/Schlüssel, z. B. iterator std::map::find(const Key& key)
.
Iteratoren und Indizes sind in der Tat eher tangential verwandte Konzepte. Ein Index allein ermöglicht es Ihnen nicht, auf die Daten des Containers in irgendeiner Weise zuzugreifen, Sie müssen eine Funktion aus dem Container aufrufen, wie der Subscript-Operator ([]
) oder find()
.
Ein Iterator kann jedoch mit *
oder ->
"dereferenziert" werden, auch wenn Sie keinen Zugriff mehr auf den ursprünglichen Container haben. Manchmal werden Iteratoren in C++ ohne den zugehörigen Container weitergegeben. Sie können auch (abhängig vom Container) inkrementiert und/oder dekrementiert werden.
Viele Leute verwenden die Begriffe "Schlüssel" und "Index" austauschbar, mich eingeschlossen. Dies ist je nach Kontext möglicherweise nicht völlig angemessen, aber sie sind im Allgemeinen ein äquivalentes Konzept.
- 1. Was ist der Unterschied zwischen einem Iterator und einem Generator?
- 2. Was ist der Unterschied zwischen einem Index und einem Fremdschlüssel?
- 3. Unterschied zwischen Iterator und Iterable
- 4. Was ist der Unterschied zwischen einem Tabellenindex und einem Ansichtsindex?
- 5. Was ist der Unterschied zwischen einem Sentinel- und einem End-Iterator?
- 6. ES 6: Unterschied zwischen Symbol.iterator und @@ Iterator
- 7. Unterschied zwischen Iterator und Stream in Scala?
- 8. Unterschied zwischen spärlichem Index und dichtem Index
- 9. Unterschied zwischen Iterator und Array in C#
- 10. Unterschied zwischen Suche und Index
- 11. Was ist der Unterschied zwischen einem Table Scan und einem Clustered Index Scan?
- 12. Was ist der Unterschied zwischen einem Sekundärindex und einem invertierten Index in Cassandra?
- 13. Leistungsunterschied zwischen ++ Iterator und Iterator ++?
- 14. Was ist der Unterschied zwischen einem RoutedCommand und einem RoutedUICommand?
- 15. Was ist der Unterschied zwischen einem Muster und einem Pfad?
- 16. Was ist der Unterschied zwischen einem Primärschlüssel und einem Ersatzschlüssel?
- 17. Was ist der Unterschied zwischen einem Integrator und einem Tiefpassfilter?
- 18. Was ist der Unterschied zwischen einem Controller und einem Service?
- 19. Was ist der Unterschied zwischen einem Anwendungscontroller und einem Anwendungskontext?
- 20. Was ist der Unterschied zwischen einem Streamwriter und einem Binarywriter?
- 21. Was ist der Unterschied zwischen einem Key und einem KeySpec?
- 22. Was ist der Unterschied zwischen einem Domänenklassendiagramm und einem Designklassendiagramm?
- 23. Was ist der Unterschied zwischen einem Tupel und einem compressed_pair?
- 24. Was ist der Unterschied zwischen einem Klassendiagramm und einem Objektdiagramm?
- 25. Was ist der Unterschied zwischen einem Array und einem Objekt?
- 26. Was ist der Unterschied zwischen einem Algorithmus und einem Entwurfsmuster
- 27. Was ist der Unterschied zwischen einem Nanokern und einem Exokernel?
- 28. Was ist der Unterschied zwischen einem Helfer und einem Teil?
- 29. Was ist der Unterschied zwischen einem Workflow und einem Flowchart?
- 30. Was ist der Unterschied zwischen einem Instanzinitialisierer und einem Konstruktor?
Ein Index wird also verwendet, um die Daten im Container nachzuschlagen, kann aber nicht selbst Daten im Container nachschlagen? Was macht ein Index an sich? Ein Iterator ist eine Klasse, aber ein Index ist? – Dog
@Dog Ein Index kann alles sein (für einige Container); aber es hat nichts mit dem Container zu tun. Wieder mit Arrays: Der Index ist eine ganze Zahl. So können Sie auf ein Element eines Arrays mit 'x' zugreifen, das' int x = 10; 'hat, aber' x' allein hat keine Verbindung zu den Daten; nur 'array [x]' tut es. Iteratoren tragen ihre Verbindung zum Container mit sich. –