Вопрос

Я читал о сходстве между списком Python и Vector C ++, и он выглядит так, как будто только разница - это список Python, является неоднородным.Есть ли другие различия?Как они оба реализованы?

Это было полезно?

Решение

Список Python, так и вектор C ++ реализуются как динамические массивы ( https://en.wikipedia.org/ wiki / dynamic_array ). (По сути, массивы, которые перераспределяются, когда они слишком малы.) Теперь важная разница между версией Python и C ++ не приходит из самих структур данных, а скорее от языка.В C ++ вы можете хранить структуры, примитивные указатели типов данных и т. Д. В векторе.Но в Python все указатель в том смысле, что е.Г.Целое число хранится в куче, и он имеет аннотацию, прикрепленную к нему, что говорит «Я целое число».Это требуется, потому что Python имеет систему динамического типа.И элементы, хранящиеся в списке, являются только указателями на фактические элементы.Этот механизм также позволяет Python хранить различные типы данных в том же списке.Это еще одна причина, почему Python вроде медленно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с cs.stackexchange
scroll top