Записки программиста
Авторский блог Михаила Лукина

vector

vector  |  string  |  set
vector является стандартным последовательным контейнером.
vector по своей структуре аналогичен массиву. Данные в нем располагаются последовательно. Это значит, что данные вектора можно передавать везде, где требуется массив:
 
void myFunction (int *data);
 
vector<int> myVector;
//Заполнение вектора
myFunction(&myVector[0]);
 
Вектора эффективны для следующих операций:
  • доступ к элементам по индексу (константное время);
  • итерация по элементам в любом порядке (линейное время);
  • Добавление и удаление элементов из конца вектора (амортизированное константное время).

По сравнению с масивами вектора предоставляют почти такое же быстродействие для этих операций, при этом у них легко изменяется размер. Однако, обычно они потребляют больше памяти чем массивы, так как память выделяется заранее для последующего роста вектора.

Среди всех STL-контейнеров у vector самый быстрый доступ к элементам по индексу.

Функции-члены:





Итераторы




  • begin - указывает на первый элемент.

  • end - указывает на элемент, следующий за последним.

  • rbegin  - указывает на первый элемент в обратной последовательности.

  • rend - указывает на элемент, следующий за последним, в обратной последовательности.


Операции с размерами




  • size - возвращает число элементов.
     
  • max_size  - возвращает максимальное число элементов, которое может быть в этом контейнере.

  • resize - изменяет размер вектора.

  • capacity - возвращает размер выделенной памяти.

  • empty - возвращает пуст вектор или нет.

  • reserve - выделяет память под вектор.


Доступ к элементам




  • operator [] - доступ к элементу по индексу.

  • at - доступ к элементу по индексу с проверкой.

  • front - возвращает первый элемент.

  • back - возвращает последний элемент.


Модификация контейнера




  • assign - присваивание значений.

  • push_back - добавляет элемент в конец.

  • pop_back - удаляет последний элемент.

  • insert - вставляет элемент(ы).

  • erase - удаляет элемент(ы).

  • swap - обмен элементами между двумя векторами.

  • clear - удаляет все элементы.


Распределители памяти





  • get_allocator - получает копию распределятеля памяти.


vector 

Версия для печати

© 2010-2014. Записки программиста. Все права защищены.
Яндекс.Метрика
ВебСтолица.РУ: создай свой бесплатный сайт!  | Пожаловаться  
Движок: Amiro CMS