class Feix:
    """
    Representació de feixos de vectors 2D.
    Està implementat amb un únic atribut: una llista.
    """
    def __init__(self):
        self.__lv = []     # Atribut privat

    def afegeix(self, v):
        self.__lv.append(v)

    def __len__(self):
        return len(self.__lv)

    def __getitem__(self, i):
        return self.__lv[i]

    def __contains__(self, v):
        return v in self.__lv

    def __iter__(self):
        return iter(sorted(self.__lv, key=lambda v:(v.x, v.y)))  
    
    def __str__(self):
        s = 'Feix::['
        for v in self.__lv:
            s = s + str(v) + ',' # Crida a __str__ de Vector
        if s[-1]==',':
            s = s[:-1]
        return s + ']'

