Задачі: Динамічний масив¶
Практичні задачі на тему динамічного масиву (int_vector).
Формат задач
У кожній задачі дано сигнатуру функції або методу. Потрібно написати
реалізацію замість .... Всі функції — методи структури int_vector
з лекції, якщо не вказано інше.
Середній рівень¶
Середніший рівень¶
Задача 6: insert
Вставити значення на позицію index, зсунувши решту елементів вправо.
Задача 7: erase
Видалити елемент на позиції index, зсунувши решту елементів вліво.
Задача 8: shrink_to_fit
Зменшити capacity до size, щоб не витрачати зайву пам'ять.
Задача 9: reserve
Гарантувати, що capacity >= n. Якщо вже достатньо — нічого не робити.
Задача 10: find
Знайти перше входження значення. Повернути індекс або -1, якщо не знайдено.
Задача 11: count
Порахувати, скільки разів значення зустрічається у векторі.
Дуже середній рівень¶
Задача 12: reverse
Розвернути вектор (перший елемент стає останнім і навпаки).
Задача 13: unique
Видалити послідовні дублікати. Наприклад, [1, 1, 2, 2, 2, 3, 1] → [1, 2, 3, 1].
Задача 15: char_vector
Створити окрему структуру char_vector для зберігання рядка символів.
Реалізувати метод print_string, який виводить вміст як рядок.
Прикладні задачі середнього рівня¶
Задача 16: read_and_max
Зчитати n чисел з stdin у вектор і знайти максимум. Це вільна функція.
Задача 17: read_until_zero
Зчитувати числа з stdin до тих пір, поки не введено 0.
Зберегти у вектор і вивести у зворотньому порядку. Написати код у main.
Задача 18: concat
Додати всі елементи з другого вектора в кінець першого.
Задача 19: equals
Порівняти два вектори. Повернути true, якщо вони мають однаковий вміст.