Числовые типы. Перечисляемые подмножества

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

   
Четвертый и последний вариант определения подмножеств элементов - перечисляемые подмножества. Подмножество элементов массива значений
определяется простой передачей массива с индексами, При этом индексы не обязаны следовать в порядке сортировки и могут включаться в массив дважды.

   
В остальном перечисляемые подмножества ничем не отличаются от других подмножеств массивов значений.

  • Чтобы определить подмножество элементов массива значений, вы просто передаете массив с элементами типа size_t в аргументе оператора [] массива значений.
  • Если массив значений является константным, то полученное выражение определяет новый массив значений.
  • Для неконстантных массивов значений полученное выражение определяет объект indirect_array, представляющий набор элементов
    массива значений со ссылочной семантикой:

    namespace std {
    	    template <class T>
    	    class indirect_array;
    		    template <class T>
    	    class valarray {
    	      public:
    	        // Индексирование константного массива значений
    	        // возвращает новый массив значений
    	        valarray<T> operator[] (const valarray<size_t>&) const;
    	
    	        // Индексирование неконстантного массива
    	        // значений возвращает indirect_array
    	        indirect_array<T> operator[] (const valarray<size_t>&);
    	        ...
    	    };
    	}
    
  • Для класса indirect_array определены операторы присваивания (обычные и комбинированные), позволяющие модифицировать элементы
    подмножества.
  • Преобразования типа позволяют объединять перечисляемые подмножества с другими массивами значений и подмножествами их элементов
    (смотри 433 шаг).

   
На следующем шаге мы рассмотрим пример использования перечисляемых подмножеств.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий