§ 14. Пераўтварэнне элементаў масіву
14.5. Выдаленне элемента з масіву
Для выдалення з масіву элемента, які стаіць на месцы k, трэба зрушыць на адну пазіцыю ўлева ўсе элементы, якія стаяць пасля яго. Колькасць элементаў пры гэтым памяншаецца на 1. Гэтыя дзеянні рэалізаваны ў функцыі erase, якая належыць класу vector. Даступныя два варыянты выкліку гэтай функцыі:
Параметрамі функцыі erase з’яўляюцца ітэратары. Калі трэба выдаліць, напрыклад, пяты элемент, то параметр функцыі можа быць запісаны так: a.begin() + 5. Прыклад 14.7. Зададзены аднамерны масіў цэлых лікаў. Выдаліць з яго ўсе лікі, кратныя 5. Колькі лікаў выдалілі? Этапы выканання задання I. Зыходныя даныя: аднамерны масіў а, колькасць элементаў n. II. Вынік: пераўтвораны масіў a і колькасць выдаленых лікаў k. III. Алгарытм рашэння задачы. 1. Увод зыходных даных. IV. Апісанне пераменных: n, k – int, а – vector <int>. Паколькі элементы пры выдаленні зрушваюцца ўлева, абыходзіць масіў можна з канца (прыклад 14.8). |
Прыклад 14.7. V. Праграма:
VI. Тэсціраванне. VII. Аналіз вынікаў. Элементы 5, 15, 35, 10 і 30 кратныя 5, таму іх выдалілі з масіву. Элементы 3 і 4 не кратныя 5, таму яны засталіся ў масіве і зрушыліся ў пачатак. Прыклад 14.8. Фрагмент праграмы:
Лічыльнік k можна не выкарыстоўваць, колькасць выдаленых элементаў можна знайсці як рознасць паміж пачатковай колькасцю элементаў n і даўжынёй вектара пасля выдалення элементаў: n – a.size(). |