Программирование >>  Формирование пользовательского контейнера 

1 ... 102 103 104 [ 105 ] 106 107 108 ... 156


II Удсшяет и уничтожает все элементы.

void clear О

erase(begin(). endO);

II ** He-STL-функции *****

Возвращает границы, int getlowerbound() {

return lowerbound;

int getupperbound () {

return upperbound;

***** Реализации невстроенных функций

Конструирует массив заданного диапазона

с указанием начального значения каждого элемента.

template <class Т, class А>

RangeArray<T, А>:: RangeArray (int low, int high, const T Set)

if (high <= low) throw RAExc ( Invalid Range ); high++;

Сохраняет границы, upperbound = high; lowerbound = low;

Выделяет память для контейнера, arrayptr = а.allocate(high - low);



322 TfTaeag

Сохраняет длину контейнера, len = high - low;

Конструирует элементы. for(size type i=0; i < sizeO; i++) a.cons truet(&arrayptr[i], t);

Создает массив с отсчетом от нуля из num элементов со значением t. Этот конструктор нужен для совместимости с библиотекой STL. template <class Т, class А>

RangeArray<T, А>::RangeArray(int num, const T &t) {

Сохраняет границы, upperbound = пглп; lowerboгmd = 0;

Выделяет память для контейнера, arrayptr = а. allocate (пглп);

Сохраняет длину контейнера, len = пглп;

Формирует элементы. for(size type i=0; i < sizeO; i++) a.cons truet(&arrayptr[i], t);

Создает массив с отсчетом от нуля из элементов, заданных диапазоном итераторов. Этот конструктор нужен для совместимости с библиотекой STL. tenplate <class Т, class А>

RangeArray<T, А>::RangeArray(iterator start, iterator stop)

Выделяет требуемую память, arrayptr = a.allocate(stop - start);



upperbound = stop - start; lowerbound = 0;

len = stop - start;

Конструирует элементы, заданные диапазоном итераторов. for(size type 1=0; i < sizeO; i++) a-construct(&arrayptr[i], *start++);

Копирующий конструктор, tenplate <class T, class A>

RangeArray<T, A>:: RangeArray (const RangeArray<T, A> &o) {

Выделяет память для копии, arrayptr = a.allocate(o.size());

upperbound = о. upperbound; lowerbound = o.lowerbound;

len = o.len;

Создает копию.

for(size type i=0; i < sizeO; i++)

a.cons truet(&arrayptr[i], о.arrayptr[i]);

Деструктор.

tenplate <class T, class A> RangeArray<T, A>::-RangeArray() {

Вызывает деструкторы для элементов в контейнере. for(size type i=0; i < sizeO; i++) a.destroy(&arrayptr[i]);

Освобождает память.

a.deallocate (arrayptr, sizeO);



1 ... 102 103 104 [ 105 ] 106 107 108 ... 156

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика