Эксперименты с классом RangeArray |
|
Вы можете усовершенствовать класс RangeArray и поэкспериментировать с ним. Например, можно добавить итераторы обратного направления и функции rbeginO и rend о. Еще несколько идей. Попробуйте оптимизировать контейнер. Как упоминалось, при разработке класса RangeArray автор добивался максимальной прозрачности кода, а не скорости выполнения, поэтому контейнер легко улучшить. Например, попробуйте выделять чуть больше, чем нужно, памяти при конструировании объектов, в этом случае не все операции вставки потребуют повторного выделения памяти. Создайте функции-члены класса для преобразования объекта RangeArray в стандартный массив с нулевой нижней границей. Разработайте конструктор, принимающий стандартный массив и индекс в качестве параметра преобразующий массив в объект RangeArray. Используйте параметр индекс для определения местоположения нулевого значения индекса. Наконец, примените вектор вместо стандартного массива для хранения элементов контейнера RangeArray. Посмотрите, упростится ли реализация.
|