1. ein array hat nichts mit sortiert zu tun. die daten darin können sortiert sein, müssen aber nicht
2. das du mit einem iterator die schlüssel der map in einer (sortierten) ordnung traversieren kannst bedeutet NICHT, dass die daten sortiert sind!
das ist ganz entscheident bei der verwendung von maps. sind die schlüssel nämlich tatsächlcih sortiet, dann kann man diese in linearer zeit traversieren. ist das nicht der fall, so kann man von dieser laufzeit nicht ausgehen.
bei maps wird nur von einer möglichen traversierung in einer definierbaren ordnung gesprochen. die daten sind aber im allgeminen NICHT sortiert!
map's geben KEINERLEI garantie über die art und weise, wie die daten tatsächlich gehalten werden und damit auch nicht ob diese sortiert sind (in der ordnung, die zur traversierung verwendet werden soll).
meist sind die keys tatsächlcih als binarytree gehalten, wie es auch in dem link oben steht und das als array ist NICHT in der zu traversierenden ordnung sortiert.
was du mit dem hinweis zur MMU mir sagen willst ist mir schleierhaft. die mmu hat mit den maps und wie sie ihre daten vorhält absolut nichts zu tun.
die daten/keys sind es bei maps nicht! der zugrauf die keys kann aber die keys in einer sortierten reihenfolge durchlaufen.
sind diese aber nicht tatsächlcih sortiert gehalten, ist das im allgemeinen teuer.
es ist einfach falsch und schlecht aus der möglichen "sortierten" traversierung der keys bei einer map eine sortierte folge abzuleiten, da dies im allgemeinen teuerer ist, als eine echte sortierte/sortierende datenstruktur.
EDIT: um es kurz zu machen:
map: die daten sind im allgeminen NICHT sortiert. ABER man kann per iterator diese in einer sortierten reihenfolge durchlaufen.
und der springende punkt:
wie die map ihre daten hält ist ihre sache. aus nutzer sicht, geht das einen nichts an und man darf auch nicht annehmen, intern wären die daten sortiert vorhanden, nur wil manche implementierung dies so machen.
2. das du mit einem iterator die schlüssel der map in einer (sortierten) ordnung traversieren kannst bedeutet NICHT, dass die daten sortiert sind!
das ist ganz entscheident bei der verwendung von maps. sind die schlüssel nämlich tatsächlcih sortiet, dann kann man diese in linearer zeit traversieren. ist das nicht der fall, so kann man von dieser laufzeit nicht ausgehen.
bei maps wird nur von einer möglichen traversierung in einer definierbaren ordnung gesprochen. die daten sind aber im allgeminen NICHT sortiert!
map's geben KEINERLEI garantie über die art und weise, wie die daten tatsächlich gehalten werden und damit auch nicht ob diese sortiert sind (in der ordnung, die zur traversierung verwendet werden soll).
meist sind die keys tatsächlcih als binarytree gehalten, wie es auch in dem link oben steht und das als array ist NICHT in der zu traversierenden ordnung sortiert.
was du mit dem hinweis zur MMU mir sagen willst ist mir schleierhaft. die mmu hat mit den maps und wie sie ihre daten vorhält absolut nichts zu tun.
Ergänzung ()
nein, wir haben hier gerade eine unterschiedliche vorstellung was wir sortiert haben.Hancock schrieb:Ich glaube, das Problem ist, das du und ich eine verschiedene Vorstellung von "sortiert" haben.
die daten/keys sind es bei maps nicht! der zugrauf die keys kann aber die keys in einer sortierten reihenfolge durchlaufen.
sind diese aber nicht tatsächlcih sortiert gehalten, ist das im allgemeinen teuer.
es ist einfach falsch und schlecht aus der möglichen "sortierten" traversierung der keys bei einer map eine sortierte folge abzuleiten, da dies im allgemeinen teuerer ist, als eine echte sortierte/sortierende datenstruktur.
EDIT: um es kurz zu machen:
map: die daten sind im allgeminen NICHT sortiert. ABER man kann per iterator diese in einer sortierten reihenfolge durchlaufen.
und der springende punkt:
wie die map ihre daten hält ist ihre sache. aus nutzer sicht, geht das einen nichts an und man darf auch nicht annehmen, intern wären die daten sortiert vorhanden, nur wil manche implementierung dies so machen.
Zuletzt bearbeitet: