Дадатак да главы 1.1.
Сайт: | Профильное обучение |
Курс: | Інфарматыка. 10 клас (Павышаны ўзровень) |
Книга: | Дадатак да главы 1.1. |
Напечатано:: | Гость |
Дата: | Суббота, 19 Апрель 2025, 14:46 |
Некаторыя функцыі для работы з тыпам даных вектар
Функцыя |
Дзеянне |
v.size() |
Вяртае колькасць элементаў |
v.resize(n) |
Змяняе колькасць элементаў у вектары, новае значэнне становіцца роўным n. Пры гэтым колькасць элементаў можа як паменшыцца, так і павялічыцца. Калі выклікаць у выглядзе v.resize(n, x), дзе x — значэнне, якое адпавядае тыпу элементаў у вектары, то пры павелічэнні колькасці элементаў дабаўляемыя значэнні будуць роўныя x. |
v.clear() |
Ачышчае вектар, колькасць элементаў становіцца роўнай 0 |
v.empty() |
Вяртае true, калі вектар пусты, false — калі не пусты |
v.push_back(x) |
Дабаўляе ў канец вектара элемент x, выклікаецца з адным параметрам, тып якога супадае з тыпам элементаў вектара |
v.pop_back() |
Выдаляе апошні элемент вектара |
v.erase(pos). v.erase(first, last) |
Выдаляе адзін элемент, pos — ітэратар, які паказвае на выдаляемы элемент; выдаляе элементы ў дыяпазоне [first; last). |
v.insert(pos, value) v.insert(pos, value, count) v.insert(pos, first, last) |
Устаўляе value перад элементам, на які паказвае pos; устаўляе count копій значэння value перад элементам, на які паказвае pos; устаўляе элементы з дыяпазону [first, last) перад элементам, на які паказвае pos |
v1.swap(v2) |
Мяняе месцамі змесціва двух вектараў |
v.begin() |
Вяртае ітэратар на першы элемент |
v.end() |
Вяртае ітэратар на элемент, наступны за апошнім |
v.rbegin() |
Вяртае адваротны ітэратар на першы элемент |
v.rend() |
Вяртае адваротны ітэратар на элемент, наступны за апошнім |
v.front() |
Дае доступ да першага элемента |
v.back() |
Дае доступ да апошняга элемента |
Некаторыя функцыі бібліятэкі algorithm
Функцыя |
Дзеянне |
Не мадыфікуючыя аперацыі |
|
accumulate |
Складае дыяпазон элементаў |
djacent_difference |
Лічыць розніцу паміж сумежнымі элементамі дыяпазону |
adjacent_find |
Знаходзіць два ідэнтычныя (ці тыя, што маюць іншыя адносіны) элементы, сумежныя адзін з адным |
Count |
Вяртае колькасць элементаў, адпаведных дадзенаму значэнню |
count_if |
Знаходзіць значэнне ў дадзеным дыяпазоне |
equal |
Вызначае, ці аднолькавыя два мноствы элементаў |
find |
Знаходзіць значэнне ў дадзеным дыяпазоне |
find_end |
Шукае апошняе ўваходжанне падпаслядоўнасці элементаў у дыяпазон |
find_first_of |
Шукае ў мностве элементаў першае ўваходжанне любога элемента іншага мноства |
find_if |
Шукае першае ўваходжанне элемента, для якога дакладна вызначаны прэдыкат |
for_each |
Ужывае функцыю да дыяпазону элементаў |
inner_product |
Лічыць унутраны прадукт двух дыяпазонаў элементаў |
mismatch |
Знаходзіць першую пазіцыю, у якой два дыяпазоны розныя |
partial_sum |
Лічыць частковую суму дыяпазону элементаў |
search |
Выконвае пошук у дыяпазоне элементаў |
search_n |
Шукае N паслядоўных копій элемента ў дыяпазоне |
Мадыфікуючыя аперацыі |
|
copy |
Капіруе некаторы дыяпазон элементаў у новае месца |
copy_backward |
Капіруе дыяпазон элементаў у адваротным парадку |
fill |
Прысвойвае дыяпазону элементаў пэўнае значэнне |
fill_n |
Прысвойвае значэнне некаторай колькасці элементаў |
generate |
Захоўвае вынік функцыі ў дыяпазоне |
generate_n |
Захоўвае вынік N ужыванняў функцыі |
iter_swap |
Змяняе месцамі элементы, пазначаныя двума ітэратарамі |
partition |
Дзеліць дыяпазон элементаў на дзве групы |
random_shuffle |
Выпадковае перамешванне элементаў дыяпазону |
remove |
Выдаляе элемент, роўны вызначанаму значэнню |
remove_copy |
Капіруе дыяпазон элементаў, за выключэннем элементаў, роўных вызначанаму значэнню |
remove_copy_if |
Стварае копію дыяпазону, за выключэннем элементаў, для якіх прэдыкат з’яўляецца праўдзівым |
remove_if |
Выдаляе ўсе элементы, для якіх прэдыкат з’яўляецца праўдзівым |
replace |
Замяняе кожнае ўваходжанне некаторага значэння ў дыяпазоне іншым значэннем |
replace_copy |
Капіруе дыяпазон, замяняючы пэўныя значэнні новымі |
replace_copy_if |
Капіруе дыяпазон значэнняў, замяняючы тыя, для якіх прэдыкат з'яўляецца праўдзівым |
replace_if |
Замяняе значэнні тых элементаў, для якіх прэдыкат з'яўляецца праўдзівым |
reverse |
Замяняе кожнае ўваходжанне некаторага значэння ў дыяпазоне іншым значэннем |
reverse_copy |
Стварае копію некаторага дыяпазону, змяняючы парадак прытрымлівання элементаў на адваротны |
rotate |
Рухае элементы мноства ўлева на некаторую колькасць пазіцый |
rotate_copy |
Капіруе і дыяпазон, зрушваючы ўсе яго элементы на некаторую колькасць пазіцый |
stable_partition |
Дзеліць элементы на дзве групы, захоўваючы іх адносны парадак |
swap |
Змяняе месцамі значэнні двух аб’ектаў |
swap_ranges |
Змяняе месцамі два дыяпазоны элементаў |
transform |
Ужывае функцыю пераўтварэння да дыяпазону элементаў |
unique |
Выдаляе дублікаты элементаў у дыяпазоне |
unique_copy |
Стварае копію дыяпазону, якая не змяшчае дублікатаў элементаў |
Сартаванне |
|
nth_element |
Устаўляе элемент дыяпазону, захоўваючы ўпарадкаванасць, і правярае, што няма элементаў, для якіх элемент злева большы, чым элемент справа |
partial_sort |
Сартуе першыя N элементаў дыяпазону |
partial_sort_copy |
Капіруе і часткова сартуе дыяпазон элементаў |
sort |
Сартуе дыяпазон па ўзрастанні |
stable_sort |
Сартуе дыяпазон элементаў, захоўваючы адноснае становішча паміж роўнымі элементамі |
Бінарны пошук (аперацыі для адсартаваных дыяпазонаў) |
|
binary_search |
Вызначае, ці прысутнічае элемент у некаторым дыяпазоне |
equal_range |
Шукае дыяпазон элементаў, роўных вызначанаму элементу |
lower_bound |
Шукае першае месца ў дыяпазоне, у якое можна ўставіць значэнне, захоўваючы ўпарадкаванасць |
upper_bound |
Шукае апошняе месца, куды можна ўставіць значэнні, захоўваючы ўпарадкаванасць (першае месца, у якім элемент большы, чым устаўляемае значэнне) |
Зліццё (аперацыі для адсатраваных дыяпазонаў) |
|
includes |
Вяртае праўду, калі адно мноства з’яўляецца падмноствам іншага |
inplace_merge |
Выконвае зліццё двух упарадкаваных дыяпазонаў, захоўваючы вынік у іх |
merge |
Выконвае зліццё двух упарадкаваных дыяпазонаў |
set_difference |
Лічыць розніцу паміж двума мноствамі |
set_intersection |
Лічыць перакрыжаванне двух мностваў |
set_symmetric_difference |
Лічыць сіметрычную рознасць паміж двума мноствамі |
set_union |
Вылічвае аб'яднанне двух мностваў |
Min/Max |
|
max |
Вяртае большы з двух элементаў |
max_element |
Вяртае найбольшы элемент у дыяпазоне |
min |
Вяртае меншы з двух элементаў |
min_element |
Вяртае найменшы элемент у дыяпазоне |
lexicographical_compare |
Вяртае праўду, калі адзін дыяпазон лексікаграфічна меншы, чым іншы |
next_permutation |
Атрымлівае наступную ў лексікаграфічным парадку перастаноўку элементаў дыяпазону |
prev_permutation |
Атрымлівае наступную ў лексікаграфічным парадку перастаноўку элементаў дыяпазону |
Некаторыя функцыі для работы з тыпам даных спіс
Функцыя |
Дзеянне |
front |
Доступ да першага элемента |
back |
Доступ да апошняга элемента |
empty |
Правярае адсутнасць элементаў |
size |
Вяртае колькасць элементаў |
push_front |
Устаўляе элемент у пачатак |
pop_front |
Выдаляе першы элемент |
push_back |
Устаўляе элемент у канец |
pop_back |
Выдаляе апошні элемент |
clear |
Ачышчае спіс |
erase |
Выдаляе элементы |
insert |
Устаўляе элементы |
resize |
Змяняе колькасць захоўваемых элементаў |
merge |
Зліццё двух адсартаваных спісаў |
splice |
Перамяшчае элементы з іншага list |
remove |
Выдаляе элементы, якія задавальняюць вызначаным крытэрам |
reverse |
Змяняе парадак элементаў |
unique |
Выдаляе паслядоўна паўтаральныя элементы |
sort |
Сартуе элементы |
Некаторыя функцыі для работы з тыпам даных дэк
У адрозненне ад вектару элементы дэка не захоўваюцца бесперапынна: звычайна гэта рэалізавана з дапамогай набору вылучаных масіваў фіксаванага памеру.
Сховішча дэка апрацоўваецца аўтаматычна, пашыраючыся і звужаючыся па меры неабходнасці. Пашырэнне дэка танней, чым пашырэнне вектара, таму што яно не патрабуе капіравання існых элементаў у новы ўчастак памяці.
Да элементаў дэка можна звяртацца па індэксе.
Складанасць (прадукцыйнасць) стандартных аперацый над двухбаковай чаргой наступная:
- адвольны доступ — пастаянная O(1);
- устаўка і выдаленне элементаў з пачатку і з канца — амартызаваная пастаянная O(1);
- устаўка і выдаленне элементаў — лінейная O(n).
Функцыя |
Дзеянне |
front |
Доступ да першага элемента |
back |
Доступ да апошняга элемента |
empty |
Правярае адсутнасць элементаў |
size |
Вяртае колькасць элементаў |
push_front |
Устаўляе элемент у пачатак |
pop_front |
Выдаляе першы элемент |
push_back |
Устаўляе элемент у канец |
pop_back |
Выдаляе апошні элемент |
clear |
Ачышчае дэк |
insert |
Устаўляе элементы па ітэратары |
erase |
Выдаляе элементы па ітэратары |