STL стандарттык китепканасы

STL: sort иреттөөсү, түгөйлөр, set жана map — сааттарды үнөмдөгөн куралдар.

STL (шаблондордун стандарттык китепканасы) — олимпиадаларда C++ тилинин башкы артыкчылыгы. Даяр маалымат структуралары жана алгоритмдер типтүү маселелердин жарымын жаап турат. Эң көп колдонулганы — иреттөө: algorithm китепканасындагы std::sort векторду O(n log n) убакытта иреттейт. Бир сап менен.
C++

Иреттөө. Киргизиңиз: 5, андан кийин 3 1 4 1 5

for (int x : a) циклине көңүл буруңуз — бул «range-for», бардык элементтерди кыдыруунун кыска жолу. Дагы эки алмаштыргыс контейнер: • std::set — элементтерди кайталоосуз жана иреттелген тартипте сактайт; «элемент барбы» текшерүүсү O(log n) убакытта иштейт; • std::map — «ачкыч → маани» сөздүгү; ар бир сөз же сан канча жолу кездешкенин эсептөө үчүн идеалдуу.
C++

map аркылуу кайталанууларды эсептөө. Киргизиңиз: 6, андан кийин 1 2 2 3 3 3

Тапшырма: n санды окуп, алардын ичинен канчасы ар түрдүү экенин чыгарыңыз (кеңеш: баарын set ичине салып, анын өлчөмүн чыгарыңыз). Сабакты өттүм деп белгилеңиз — курстун акыркы кадамы калды: олимпиадалык шаблон.
Доска