const T& operator[](size_t n) const;
T& operator[](size_t n);
Returns: Ссылка на соответствующий элемент массива. [ Note: Выражение (a[i] = q, a[i]) == q оценивается true как любое непостоянное valarray<T> a, любое T qили size_t i такое, что значение i меньше длины a. ] — end note
Remarks: Выражение &a[i+j] == &a[i] + j оценивается true для всех size_t i и size_t j таких, что i+j < a.size().
Выражение &a[i] != &b[j] принимает значение true для любых двух массивов ,a а b и для любого size_t i и size_t j таким образом, что i < a.size() и j < b.size(). [ Note: Это свойство указывает на отсутствие псевдонимов и может быть использовано для оптимизации компиляторов. Компиляторы могут использовать встраивание, распространение констант, слияние циклов, отслеживание указателей, полученных из operator new, и другие методы для генерации эффективных valarrays. ] — end note
Ссылка, возвращаемая оператором индекса для массива, должна быть действительной до тех пор, пока для этого массива не будетresize(size_t, T) вызвана функция-член или пока не закончится время жизни этого массива, в зависимости от того, что произойдет раньше.