Untuk menyelesaikannya, adalah mudah untuk menggunakan fungsi cincang yang mengembalikan nilai unik untuk setiap baris (cincang).
C++11 mempunyai kemudahan terbina dalam untuk mendapatkan cincang: cincang.  < br /> Pada masa hadapan, untuk mengira bilangan cincang, lebih baik menggunakan jadual cincang unordered_map, yang turut muncul dalam C++ 11. Anda boleh mengetahui lebih lanjut tentang menggunakan peta dalam kursus Struktur data dinamik -> Tatasusunan bersekutu: peta.

Contoh mendapatkan cincang daripada rentetan "ujian":

hash<rentetan> hash_fn;
size_t str_hash = hash_fn("test" );
cout<<str_hash;


Hasilnya ialah: "2949673445", jadi daripada setiap rentetan unik anda boleh mendapatkan cincang unik yang boleh digunakan sebagai kunci dalam  unordered_map.

Mencincang rentetan ialah perwakilan rentetan sebagai beberapa nombor, unik (kami akan menganggap bahawa peluang perlanggaran adalah diabaikan) untuk setiap rentetan. Ini membolehkan anda menyimpan sebarang data penting (seperti kata laluan) dalam pangkalan data bukan sebagai rentetan, tetapi sebagai nombor. Ini membolehkan anda melindungi kata laluan jika penyerang mendapat akses kepada pangkalan data kata laluan, kerana dia tidak akan mendapat kata laluan itu sendiri, tetapi hanya perwakilan berangkanya, dan hampir mustahil untuk mendapatkan rentetan melalui hashnya (terutamanya tanpa mengetahui algoritma pencincangan ). 
Cincangan polinomial paling kerap digunakan dalam masalah persaingan pengaturcaraan.
Salah satu cara terbaik untuk menentukan fungsi cincang rentetan S adalah seperti berikut:
h(S)  =  S[0]  +  S[1] * P  +  S[2] * P^2  +  S[3] * P^3  +  ...  +  S[N] * P^N