Gli operatori di confronto dovrebbero accettare un riferimento const ai loro argomenti ed essere loro stessi const, dal momento che un operatore di confronto non deve modificare nessuno degli oggetti su cui viene applicato; per cui:
Più info su const.codice:bool operator< (const Arc & a) const;