Frage

Ich habe über die Ähnlichkeiten zwischen der Python-Liste und dem C ++ - Vektor gelesen, und es sieht so aus, als ob der einzige Unterschied die Python-Liste ist, ist heterogen.Gibt es andere Unterschiede?Wie werden beide implementiert?

War es hilfreich?

Lösung

Beide Pythonliste und C ++ - Vektor werden als dynamische Arrays implementiert ( https://en.wikipedia.org/ wiki / dynamic_array ). (Im Wesentlichen Arrays, die neu werden, wenn sie zu klein sind.) Nun stammt der wichtige Unterschied zwischen der Python- und der C ++ - Version nicht von den Datenstrukturen selbst, sondern aus der Sprache.In C ++ können Sie Strukturen, primitive Datentypen-Zeiger usw. in einem Vektor speichern.Aber in Python ist alles ein Zeiger in dem Sinne, dass ein z.B.Eine Ganzzahl wird im Heap gespeichert und hat eine Anmerkung, die daran angeschlossen ist, dass "Ich bin eine ganze Zahl".Das ist erforderlich, weil Python ein dynamisches System hat.Die in der Liste gespeicherten Elemente sind nur Zeiger auf die tatsächlichen Elemente.Mit diesem Mechanismus können Python auch verschiedene Datentypen in derselben Liste speichern.Dies ist ein weiterer Grund, warum Python irgendwie langsam ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit cs.stackexchange
scroll top