|
Программирование >> Формирование пользовательского контейнера
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);
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |