1
0
forked from 131/lab5_ivec
Files
lab5_ivec/README.md
2023-04-21 15:04:11 +03:00

46 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Базовые структуры данных. Вектор
* Склонировать репозиторий `https://timp.pw/121/lab5_ivec.git`
(если репозиторий уже склонирован -- пропустить этот шаг ^_^)
В этом задании мы должны реализовать вектор для типа int.
Вектор -- это динамический массив данных, который может менять свой размер
в процессе работы.
Описание структуры данных ivector в файле `vector.h`
Вам необходимо реализовать некоторые функции в файле `./vector.c`
и пройти тесты (описанные в `./vector_test.c`).
Команда для сборки проекта -- **make**
Команда для запуска тестов -- **make test**
* Необходимо реализовать следующие функции(короткое описание функций можно
подсмотреть в `vector.h`):
```
vector_len
vector_data
vector_resize
vector_initdata
vector_set
vector_get
vector_push
vector_pop
vector_insert
vector_del
```
Для функций `vector_insert`, `vector_del` написать тесты в `vector_test.c`
Для работы вам могут понадобится следующие библиотечные функции:
* `malloc(size_t size)` -- функция, динамически выделяющая **size** байт и возвращающая
указатель на выделенный кусок
* `realloc(void *ptr, size_t size)` -- функция, изменяющая размер выделенного куска памяти
на вход принимает указатель на предыдущий выделенный кусок.
Функция возвращает указатель на заново выделенную память.
Все предыдущие данные в `ptr` остаются без изменений