import ctypes
import sys
class DynamicArray(object):
def __init__(self):
self.n =
self.capacity = 1
self.A = self.make_array(self.capacity)
def __len__(self):
return self.n
def __getitem__(self,k):
if not 0 <= k <self.n:
return IndexError('K is out of bounds!')
return self.A[k]
def append(self, ele):
if self.n == self.capacity:
self._resize(2*self.capacity)
self.A[self.n] = ele
self.n += 1
def _resize(self,new_cap):
B = self.make_array(new_cap)
for k in range(self.n):
B[k] = self.A[k]
self.A = B
self.capacity = new_cap
def make_array(self,new_cap):
return (new_cap * ctypes.py_object)()
Когда я использую
arr = DynamicArray()
и после вставки от 10 до 20 чисел размер байта остается прежним.
Вот как я проверяю размер массива:
sys.getsizeof(arr)
Размер байта равен 56.