forked from 131/lab5_ivec
45 lines
2.0 KiB
Plaintext
45 lines
2.0 KiB
Plaintext
Базовые структуры данных. Вектор
|
||
--------------------------------
|
||
|
||
* Склонировать репозиторий https://timp.pw/121/lab4_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
|
||
|
||
Для работы вам могут понадобится следующие библиотечные функции:
|
||
|
||
* malloc(size_t size) -- функция, динамически выделяющая size байт и возвращающая
|
||
указатель на выделенный кусок
|
||
* realloc(void *ptr, size_t size) -- функция изменяющая размер выделенного куска памяти
|
||
на вход принимает указатель на предыдущий выделенный кусок.
|
||
возвращает укзаатель на заново выделенную память.
|
||
Все предыдущие данные в ptr остаются без изменений
|