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

1 ... 108 109 110 [ 111 ] 112 113 114 ... 156


return arrayptr[0];

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

const Т &front() const

return arrayptr[0];

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

Т &Ьаск()

return arrayptr[len-1];

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

const Т &Ьаск() const

return arrayptr[len-1];

Функции итератора

Поскольку итераторы объекта RangeArray - это просто указатели на память, заданную переменной arrayptr, реализация функций итератора beginO И end О Тривиальна. Обратите внимание - необходимы как константная, так и неконстантная версии функций.

Возвращает итератор, указывающий на первый элемент.

iterator beginO

return fiearrayptr[О];,

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

iterator endО

return fiearrayptr[upperbound - lowerbound];

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



const iterator beginO const {

return &arrayptr[0];

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

const iterator end() const

return ficarrayptr[upperbound - lowerbound];

Разные функции

Все последовательные контейнеры должны предоставлять следующие функции: SizeO, max sizeO, emptyO, swap О И clear О. Далее Приведен код этих функций.

Возвращает размер контейнера.

size type size О const

return end() - begin();

Возвращает максимальный размер RangeArray. size type max sizeO { \

return a.max size();

Возвращает true, если контейнер пуст.

bool enptyO

return size О == 0;

Обменивает значения двух контейнеров.

void swap(RangeArray &b)

RangeArray<T> tnp; tmp = *this; ♦this = b;



Ъ = tup;

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

void ClearO

erase(begin(), endO );

По существу, действие функций интуитивно понятно. Тем не менее функция max sizeO заслуживает нескольких слов. Она возвращает количество элементов типа т, содержащихся в самом большом контейнере, который можно создать. Это число получено с помощью вызова функции распределителя памяти max size().

в класс RangeArray включена также необязательная функция at о, приведенная далее.

Функция at о выполняет проверку выхода за границы. Возвращает ссылку на заданный элемент. Т &at(int i) {

if(i < lowerbound i >= upperbound)

throw out of range( Index Out of Range );

return arrayptr[i - lowerbound];

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

const Т &at(int i) const

if(i < lowerbound i >= upperbound) -throw out of range( Index Out of Range );

return arrayptr[i - lowerbound];

Функция at () возвращает ссылку на элемент с заданным значением индекса. Она отличается от перефуженной операции индексирования operator[] () ТОЛЬКО тем, что выполняет проверку выхода индекса за границы диапазона (range check). Если значение индекса находится за пределами диапазона, генерируется исключение out of range. Это исключение определено в С++ и хранится в заголовочном файле <stdexcept>.



1 ... 108 109 110 [ 111 ] 112 113 114 ... 156

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