Skip to content

4. Введение в вектор

White Punk edited this page Dec 8, 2021 · 4 revisions

Вектор это динамический массив, память в котором аллоцирована одним куском c использованием std::allocator, что является по своей сути одной большой оберткой над операторами new и delete. Понять как им пользоваться можно тут:
https://www.cplusplus.com/reference/memory/allocator/?kw=allocator

Если есть лишние полтора часа, тык сюда
Для начала опишите класс вектора, конструкторы, деструктор и методы, не требующие итераторов.
Методы можно брать с сайтов из сабжекта:
https://www.cplusplus.com/reference/vector/vector/?kw=vector
https://en.cppreference.com/w/cpp/container/vector

vector<bool> реализовывать не надо!

Обычно в реализации вектора хранятся:
    _array (указатель на начало массива)
    _size (размер)
    _capacity (емкость)
    _alloc (аллокатор)
Также возможна реализация с использованием только указателей:
    _start (указатель на начало массива)
    _end (указатель на место в памяти после последнего элемента вектора)
    _end_capacity (указатель на последнюю ячейку аллоцированной памяти)
    _alloc (аллокатор)