Il requisito di essere "relazionalmente confrontabili" è molto più forte del requisito di essere "paragonabile" . Quando si tratta di iterare su contenitori, la possibilità di effettuare confronti relazionali tra iteratori o indici generici (come <
, >
, <=
ecc.) È fortemente associata a contenitori ad accesso casuale, mentre i confronti di uguaglianza sono più universalmente applicabili (e spesso il solo quelli disponibili quando si lavora con contenitori ad accesso sequenziale).
In generale, è una buona pratica rendere il codice il più generico possibile, ovvero non dovresti mai fare affidamento su requisiti più forti quando i requisiti più deboli sono perfettamente sufficienti. In altre parole, se è possibile implementare il proprio algoritmo utilizzando solo i confronti di uguaglianza, è meglio farlo in questo modo, senza introdurre alcun confronto relazionale. In questo modo è possibile rendere il proprio algoritmo più utilizzabile con una gamma più ampia di strutture di dati sottostanti (contenitori).
Naturalmente se non ti interessa questo tipo di genericità o semplicemente non ne hai bisogno, puoi semplicemente ignorare queste considerazioni e utilizzare entrambi gli approcci.
Chiunque scriva il codice sopra deve essere eseguito. Vedi http://blogs.csoonline.com/node/151 – ybungalobill
@ybungalobill: buon articolo, conclusioni errate :) – Kos
@Kos: scherzando :) e ovviamente non è così critico in un ciclo for. – ybungalobill