Für die Lösung ist es bequem, das Hech-Funking zu verwenden, das einzigartig zu jeder Zeile (hesh) zurückkehrt.
In C++ 11 gibt es einen eingebauten Hesha- Hash
In der Zukunft wäre es besser, die Hosh-Tabelle unordered_map zu verwenden, die auch in C+11 erschien. Details zur Benutzung der Karte finden Sie Dynamische Datenstrukturen - Main Associates: Karte.

Beispiel für eine Hesh aus der "test" Linie:

HTML generiert mit Hilite. ich
Hash/Zeichenation hash_fn;
Größe Strümpfe = (Siehe)"test.";
CoutTYPStr_hash;


Das Ergebnis wird sein: "2949673445", so dass jede einzigartige Linie eine einzigartige Hexe haben kann, die als Schlüssel in unordered_map verwendet werden kann.

Die Heizung der Linie ist die Präsentation der Linie in Form einer Anzahl, einzigartig (weil die Chance auf Konflikt ist vernachlässigbar) für jede Linie. Dadurch können wichtige Daten (Modell der Passwörter) in der Datenbank gespeichert werden, nicht in Form von Zeilen, sondern in Form von Zahlen. Dies schützt Passwörter, wenn der Täter Zugriff auf die Passwort-Datenbank bekommt, weil es nicht Passwörter selbst gewonnen, sondern nur ihre numerische Darstellung, aber es ist fast unmöglich, eine Zeile auf ihrer xash (vor allem nicht wissen, heching Algorithmus).
Polynomhesh wird am häufigsten in der Olympischen Programmierung verwendet.
Eine der besten Möglichkeiten, den hesh-funk aus der S-Linie zu bestimmen:
h(S) = S[0] + S[1] * P + S[2] * P2 + S[3] * P^3 + ... + S[N] * P^N