1
0
forked from 131/lab5_ivec
Files
lab5_ivec/vector.h

51 lines
2.0 KiB
C
Raw Normal View History

2022-04-16 02:49:23 +03:00
#pragma once
typedef struct {
size_t n; // Текущее количество элементов векторе
size_t maxsz; // размер выделенного массива *data*
int *data; // массив с значениями
} ivector;
/* Инициализировать вектор */
void vector_init(ivector *v);
/* Инициализировать вектор, добавить в него значения из массива *arr*. Размер массива *arrsz* */
void vector_initdata(ivector *v, int *arr, size_t arrsz);
/* деинициализировать вектор, удалить все значения и освободить память */
void vector_free(ivector *v);
/* Получить размер вектора */
size_t vector_len(const ivector *v);
/* Получить указатель на данные, хранящиеся в векторе (поле *data*) */
int *vector_data(const ivector *v);
/* Изменить размер вектора до *n* элементов.
* занулить ранее не используемые элементы.
*/
void vector_resize(ivector *v, int n);
/* Заменить существующее значение по индексу *idx* на *val* */
void vector_set(ivector *v, size_t idx, int val);
/* получить значение по индексу *idx* */
int vector_get(const ivector *v, size_t idx);
/* Добавить значение *val* в конец вектора.
*/
void vector_push(ivector *v, int val);
/* Удалить последний элемент из вектора */
void vector_pop(ivector *v);
/* Вставить новое значение *val* по индексу *idx*
* idx может быть в диапазоне [0; v->n]
*/
void vector_insert(ivector *v, size_t idx, int val);
/* Удалить элемент под индексом idx из вектора */
void vector_del(ivector *v, size_t idx);
/* очистить все элементы из вектора */
void vector_clear(ivector *v);