std::valarray<T>::end
iterator end(); | (1) | (начиная с C++11) |
const_iterator end() const; | (2) | (начиная с C++11) |
Возвращает итератор, указывающий на позицию сразу после последнего элемента числового массива.
Итератор, возвращённый этой функцией, становится недействительным при вызове функции-члена resize() для v или при завершении времени жизни v — в зависимости от того, что произойдёт раньше.
Параметры
| v | - | числовой массив |
Возвращаемое значение
Итератор, указывающий на позицию сразу после последнего элемента числового массива.
Исключения
Могут быть выброшены исключения, определяемые реализацией.
Примечания
В отличие от других функций, принимающих аргументы типа std::valarray, end() не может принимать типы-заменители (например, типы, создаваемые шаблонами выражений), которые могут возвращаться выражениями с участием valarray: использование (v1 + v2).end() непереносимо, вместо него необходимо использовать std::valarray<T>(v1 + v2).end().
Эта функция предназначена для поддержки циклов range-for с valarray, а не для обеспечения семантики контейнера.
Пример
#include <algorithm>
#include <iostream>
#include <valarray>
int main()
{
const std::valarray<char> va
{
'H', 'e', 'l', 'l', 'o',
',', ' ',
'C', '+', '+', '!', '\n'
};
std::for_each(va.begin(), va.end(), [](char c){ std::cout << c; });
}
Вывод:
Hello, C++!
Отчёты об ошибках
Следующие отчёты об ошибках, изменяющие поведение, были ретроактивно применены к ранее опубликованным стандартам C++.
| Отчёт об ошибке | Применяется к | Поведение согласно опубликованной версии | Правильное поведение |
|---|---|---|---|
| LWG 2058 | C++11 | 1. end() требовалась для поддержки типов-заменителей2. не было указано, когда возвращённые итераторы становятся недействительными | 1. не требуется 2. указано |
| P3016R6 | C++11 | функции end(), не являющиеся членами класса, привели к несогласованности при доступе к диапазону | end() заменены функциями-членами |
См. также
|
(C++11) | получает итератор, указывающий на начало valarray (функция-член общего назначения) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/numeric/valarray/end