class Vector:
def __init__(self):
self._length = 0
self._capacity = 2
self._array = Array(self._capacity)
def __len__(self):
return self._length
def __contains__(self,item):
for v in self:
if v == item:
return True
return False
def __getitem__(self,index):
return self._array[index]
def __setitem__(self,index,value):
self._array[index] = value
def __new_array(self):
oldCap = self._capacity
newCap = self._capacity * 2
newArray = Array(newCap)
for i,v in enumerate(self._array):
newArray= v
self._array = newArray
self._capacity = newCap
def append(self,item):
if self._length == self._capacity:
self.__new_array()
self._array[self._length] = item
self._length += 1
def insert(self,ndx,item):
if self._length == self._capacity:
self.__new_array()
for i in range(self._length,ndx,-1):
self= self[i-1]
self._array[ndx] = item
self._length += 1
def remove(self,ndx):
for i in range(ndx,self._length):
self= self[i+1]
self._length -= 1
def indexOf(self,item):
for i,v in enumerate(self):
if v == item:
return i
return -1
def extend(self,otherVector):
for v in otherVector:
self.append(v)
def subVector(self,f,t):
newV = Vector()
for i in range(f,t):
newV.append(self._array) return newV
def __iter__(self):
return _VectorIterator(self)