Originariamente inviato da shodan
Si, perché 26 sono le lettere dell'alfabeto. ma non centra se inserisci una stringa o un carattere: l'algoritmo è lo stesso perché si parla di un generico elemento.
Se inserisci "abracadabra" (in caratteri singoli) il set si comporta così:
inserisce a, inserisce b, inserisce r, scarta a perché c'è già, inserisce c, scarta a perché c'è già, inserisce d, scarta a perché c'è già...
Alla fine il set conterrà (in caratteri): abrcd
Se inserisci "192.168.1.100", "192.168.1.200","10.0.0.1","192.168.1.100"; il set conterrà solo il primi tre dal momento che il quarto lo trova già, ragione per cui il tuo if è sempre vero.
La cosa si applica anche alla map (che contiene coppie tipo: chiave - dato), tenendo presente che se durante l'inserimento viene rilevata una chiave doppia, la coppia viene scartata.
Il succo del discorso è che sia
set sia
map garantiscono l'univocità dei dati inseriti.