Маҷмуъ ва луғат маълумотро аз рӯи калид нигоҳ медоранд. Аксар масъалаҳо дар бораи сабтҳо (ном, адад, сана, холҳо) осон мешаванд, агар аввал ба як савол ҷавоб диҳед: калид чист? Он гоҳ контейнер худ аз худ ёфт мешавад.
Барои ҳар ҳарф як маҷмуъ
Маҷмуъ метавонад нигоҳ дорад, ки чизҳо дар куҷо ҳастанд. Ин масъаларо гиред:
Дар сатри якум сатр аз ҳарфҳои хурд, дар сатри дуюм
qаст. Дар ҳар як азqсатри баъдӣ фосилаиl rаст, мавқеъҳо аз 1 ҳисоб мешаванд. Барои ҳар фосила ҳарфҳои гуногуни байниlваr-ро бо тартиби алифбо чоп кунед.
Ҳар дафъа ҳар мавқеъи фосилаи дарозро аз нав дидан суст аст. Ба ҷои ин барои ҳар ҳарф як маҷмуъи мавқеъҳоро нигоҳ доред. Он гоҳ як lower_bound барои ҳар ҳарф ба саволи «оё ин ҳарф дар байни l ва r ҳаст?» ҷавоб медиҳад: аввалин мавқеъи он дар l ё баъд аз он бояд вуҷуд дошта бошад ва аз r зиёд набошад.
Вуруд
Баромад
vector<set<int>> pos(26) 26 маҷмуъи холӣ аст, барои ҳар ҳарф яктоӣ, ва s[i] - 'a' маҷмуъи лозимиро интихоб мекунад.
Сабтҳо аз рӯи калид гурӯҳбандӣ мешаванд
Қимати луғат метавонад вектор бошад. Он гоҳ ҳар калид рӯйхати худашро ҷамъ мекунад.
Дар сатри якум
n, дар сатри дуюмnадади бутун аст, дар мавқеъҳои аз 1 тоn. Барои ҳар қимати гуногун, аз хурд ба калон, мавқеъҳоеро чоп кунед, ки он дар онҳо меояд.
Вуруд
Баромад
where[x] ҳангоми бори аввал омадани x вектори холӣ аст ва push_back ҳар мавқеъро бо тартиб илова мекунад. Ҳамин шакл ҳар гуна сабтро аз рӯи ҳар калид гурӯҳбандӣ мекунад: баҳоҳои хонанда дар зери номи хонанда.
Хулоса барои ҳар калид
Аксар вақт танҳо хулосаи гурӯҳ лозим мешавад: ҷамъ, бузургтарин, чанд бор бузургтарин омадааст.
Ҳар натиҷа номи даста ва хол аст. Барои ҳар даста бо тартиби алифбо беҳтарин холи он ва шумори маротибае, ки даста онро гирифтааст, чоп кунед.
Барои ҳар адади лозимӣ як луғат нигоҳ доред, дар ин ҷо best ва times, ва бо омадани ҳар натиҷа сабтҳои дастаро нав кунед.