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

1 ... 100 101 102 [ 103 ] 104 105 106 ... 156


Контейнер для массива с настраиваемым диапазоном. teBplate<class Т, class Allocator = allocator<T> > class RangeArray { T *arrayptr; указатель на базовый массив контейнера

unsigned len; хранит длину контейнера int upperbound; нижняя граница int lowerbound; верхняя граница Allocator а; распределитель памяти public:

Спецификаторы typedef, необходимые для контейнера.

typedef Т value type;

typedef Allocator allocator type;

typedef typename Allocator::reference reference;

typedef typename Allocator::const reference const reference;

typedef typename Allocator::size type size type;

typedef typename Allocator::difference type difference type;

typedef typename Allocator::pointer pointer;

typedef typename Allocator::const pointer const pointer;

Итераторы прямого направления.

typedef Т iterator;

typedef const T * const iterator;

Замечание: Этот контейнер не поддерживает итераторы

обратного направления, но вы можете добавить их, если захотите.

***** Конструкторы и деструктор *****

Конструктор, заданный по умолчанию.

RangeArray()

upperbound = lowerbound = 0; len = 0;

arrayptr = a.allocate(0);

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



с присваиванием каждому элементу начального значения. RangeArray(int low, int high, const T &t);

Конструирует массив с отсчетом от нуля из пглп элементов со значением t. Этот конструктор необходим для совместимости с библиотекой STL. RangeArray (int пглп, const Т &t=T());

Конструирует на основе заданного диапазона итераторов. RangeArray(iterator start, iterator stop);

Копирующий конструктор. RangeArray(const RangeArray &o);

Деструктор. -RangeArray{);

***** Функции перегрузки операций

Возвращает ссылку на заданный элемент.

Т &operatort](int i)

return arrayptr[i - lowerbound];

Возвращает ссылки const на заданный элемент.

const Т ficoperator[](int i) const

return arrayptr[i - lowerbound];

Присваивает один контейнер другому. RangeArray &operator=(const RangeArray &o);

***** Функции вставки

Вставляет val по адресу p.

iterator insert(iterator p, const T &val);



II Вставляет пглп копий значения val, начиная с адреса р.

void insert (iterator р, int пглп, const Т &val)

for(; num>0; пглп-) p = insert(p, val) + 1;

Вставляет ряд элементов, заданный start и stop по адресу р.

void insert(iterator р, iterator start, iterator stop)

while(start != stop) {

p = insert(p, *start) + 1; start++;

***** Функции очистки *****

Стирает элемент в р. iterator erase(iterator р);

Стирает заданный диапазон элементов, iterator erase(iterator start, iterator stop) {

iterator p = end();

for (int i=s top-start; i > 0; i~)

p = erase(start); return p;

***** функции Push и Pop *****

Добавляет элемент в конец, void push back(const T &val) {

insert(end(), val);

Удаляет последний элемент.



1 ... 100 101 102 [ 103 ] 104 105 106 ... 156

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