Инструменты пользователя

Инструменты сайта


klass_vector

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

klass_vector [2011/03/06 20:39] (текущий)
Строка 1: Строка 1:
 +====== Класс vector ======
 +Класс **vector** поддерживает динамический массив и счетчик элементов,​ сохраненных в нем. Контейнер в своей внутренней работе постоянно использует операцию копирования,​ поэтому в vector лучше хранить значения только для простых типов (например int). В случае пользовтельских данных (class) в vector нужно хранить указатели на классы.
  
 +Спецификация его шаблона имеет следующий вид: ​
 +<​file>​
 +template <class T, class Allocator = Allocator<​T>>​
 +class vector
 +</​file>​
 +
 +Здесь T - тип сохраняемых данных,​ а Allocator задает распределитель. Класс vector имеет следующие конструкторы:​
 +
 +<​file>​
 +explicit vector(const Allocator &a = Allocator());​
 +
 +explicit vector(size_type num, const T &val = T(), const Allocator &a = Allocator());​
 +
 +vector(const vector <​T,​Allocator>​ &ob);
 +
 +template < class InIter> vector(InIter start, InIter end, const Allocator &a = Allocator());​
 +</​file>​
 +Первая форма конструктора создает пустой вектор. Вторая создает вектор,​ который создает num элементов со значением val. Третья создает вектор,​ который содержит те же элементы,​ что и вектор ob. Четвертая создает вектор,​ который содержит элементы в диапазоне,​ заданном параметрами start и end.
 +====== Ссылки ======
 +  * [[http://​www.quizful.net/​post/​clever-dynamic-array-template|Пишем шаблон умного динамического массива]]
 +====== Функции-члены ======
 +Для класса vector определены следующие операторы сравнения:​
 +
 +<​file>​
 +== 
 +
 +<= 
 +!= 
 +
 +>=
 +</​file>​
 +
 +Класс vector содержит следующие функции-члены:​
 +
 +<​file>​
 +template <class InIter> void assign(InIter start, InIter end);
 +
 +Помещает в вектор последовательность,​ определяемую параметрами start и end.
 +
 +void assign(size_type num, const T &val);
 +
 +Помещает в вектор num элементов со значением val.
 +
 +
 +--------------------------------------------------------------------------------
 +
 +reference at(size_type i);
 +
 +const_reference at(size_type i) const;
 +
 +Возвращает ссылку на элемент,​ заданный параметром i. При этом, в отличие от перегруженного оператора [] данная функция в случае выхода за пределы массива генерирует исключение.
 +
 +
 +--------------------------------------------------------------------------------
 +
 +reference back();
 +
 +const_reference back() const;
 +
 +Возвращает ссылку на последний элемент в векторе.
 +
 +
 +--------------------------------------------------------------------------------
 +
 +iterator begin();
 +
 +const_iterator begin() const;
 +
 +Возвращает итератор для первого элемента в векторе.
 +
 +
 +--------------------------------------------------------------------------------
 +
 +size_type capacity() const;
 +
 +Возвращает текущую ёмкость вектора,​ которая представляет собой количество элементов,​ способное храниться в векторе до того, как возникнет необходимость в выделении дополнительной памяти.
 +
 +
 +--------------------------------------------------------------------------------
 +
 +void clear();
 +
 +Удаляет все элементы из вектора.
 +
 +
 +--------------------------------------------------------------------------------
 +
 +bool empty() const;
 +
 +Возвращает значение истины,​ если используемый вектор пуст, и значение лжи в противном случае.
 +
 +
 +--------------------------------------------------------------------------------
 +
 +const_iterator end() const;
 +
 +iterator end();
 +
 +Возвращает итератор для конца вектора.
 +
 +
 +--------------------------------------------------------------------------------
 +
 +iterator erase(iterator i);
 +
 +Удаляет элемент,​ адресуемый итератором i, возвращает итератор для элемента,​ расположенного после удаленного.
 +
 +
 +--------------------------------------------------------------------------------
 +
 +iterator erase(iterator start, iterator end);
 +
 +Удаляет элементы в диапазоне,​ задаваемом параметрами start и end, возвращает итератор для элемента,​ расположенного за последним удалённым элементом.
 +
 +
 +--------------------------------------------------------------------------------
 +
 +reference front();
 +
 +const_reference front() const;
 +
 +Возвращает ссылку на первый элемент в векторе.
 +
 +
 +--------------------------------------------------------------------------------
 +
 +allocator_type get_allocator() const;
 +
 +Возвращает распределитель вектора.
 +
 +
 +--------------------------------------------------------------------------------
 +
 +iterator insert(iterator i, const T &val = T());
 +
 +Вставляет значение val непосредственно перед элементом,​ заданным параметром i, возвращает итератор для этого элемента.
 +
 +
 +--------------------------------------------------------------------------------
 +
 +void insert(iterator i, size_type num, const T &val);
 +
 +Вставляет num копий значения val непосредственно перед элементом,​ заданным параметром i.
 +
 +
 +--------------------------------------------------------------------------------
 +
 +template <class InIter> void insert(iterator i, InIter start, InIter end);
 +
 +Вставляет в вектор последовательность,​ определяемую параметрами start и end, непосредственно перед элементом,​ заданным параметром i.
 +
 +
 +--------------------------------------------------------------------------------
 +
 +size_type max_size() const;
 +
 +Возвращает максимальное число элементов,​ которое может содержать вектор.
 +
 +
 +--------------------------------------------------------------------------------
 +
 +reference operator[](size_type i) const;
 +
 +const_reference operator[](size_type i) const;
 +
 +Возвращает ссылку на элемент,​ заданный параметром i.
 +
 +
 +--------------------------------------------------------------------------------
 +
 +void pop_back();
 +
 +Удаляет последний элемент в векторе.
 +
 +
 +--------------------------------------------------------------------------------
 +
 +void push_back(const T &val);
 +
 +Добавлчет в конец вектора элемент со значением,​ заданным параметром val.
 +
 +
 +--------------------------------------------------------------------------------
 +
 +reverse_iterator rbegin();
 +
 +const_reverse_iterator rbegin() const;
 +
 +Возвращает реверсивный итератор для конца вектора.
 +
 +
 +--------------------------------------------------------------------------------
 +
 +reverse_iterator rend();
 +
 +const_reverse_iterator rend() const;
 +
 +Возвращает реверсивный итератор для начала вектора.
 +
 +
 +--------------------------------------------------------------------------------
 +
 +void reverse(size_type num);
 +
 +Устанавливает емкость вектора равной не менее заданного значения num
 +
 +
 +--------------------------------------------------------------------------------
 +
 +void resize(size_type num, const T &val = T());
 +
 +Устанавливает емкость вектора равной не менее заданного значения num, если вектор для этого нужно удлинить,​ то в его конец добавляются элементы со значением,​ заданным параметром val.
 +
 +
 +--------------------------------------------------------------------------------
 +
 +size_type size() const;
 +Возвращает текущее количество элементов в векторе.
 +
 +void swap(deque<​T,​Allocator>​ &ob);
 +Выполняет обмен элементами данного вектора и вектора ob.
 +
 +
 +void flip();
 +Инвертирует значения всех битов в векторе.
 +
 +static void swap(reference i, reference j);
 +
 +Переставляет местами биты, заданные параметрами i и j.
 +
 +</​file>​
загрузка...
klass_vector.txt · Последние изменения: 2011/03/06 20:39 (внешнее изменение)