std::valarray<T>::begin
iterator begin();
|
(1) | (начиная с C++11) |
const_iterator begin() const;
|
(2) | (начиная с C++11) |
Возвращает итератор, ссылающийся на первый элемент числового массива.
Итератор, возвращённый этой функцией, становится недействительным при вызове функции-члена resize() для v или при завершении времени жизни v, в зависимости от того, что наступит раньше.
Параметры
| v | - | числовой массив |
Возвращаемое значение
Итератор на первый элемент числового массива.
Исключения
Может выбрасывать исключения, определённые реализацией.
Примечания
В отличие от других функций, принимающих аргументы std::valarray, begin() не может принимать замещающие типы (например, типы, порождённые шаблонами выражений), которые могут быть возвращены из выражений, включающих valarrays: (v1 + v2).begin() непереносим, вместо него следует использовать std::valarray<T>(v1 + v2).begin().
Цель этой функции — позволить работе с valarrays циклам for по диапазону, а не предоставлять семантику контейнера.
Пример
#include <algorithm>
#include <iostream>
#include <valarray>
void show(const std::valarray<int>& v)
{
std::for_each(v.begin(), v.end(), [](int c)
{
std::cout << c << ' ';
});
std::cout << '\n';
};
int main()
{
const std::valarray<int> x{47, 70, 37, 52, 90, 23, 17, 33, 22, 16, 21, 4};
const std::valarray<int> y{25, 31, 71, 56, 21, 21, 15, 34, 21, 27, 12, 6};
show(x);
show(y);
const std::valarray<int> z{x + y};
for (char c : z)
std::cout << c;
}
Вывод:
47 70 37 52 90 23 17 33 22 16 21 4
25 31 71 56 21 21 15 34 21 27 12 6
Hello, C++!
Отчёты о дефектах
Следующие отчёты о дефектах, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применён к | Поведение в опубликованном виде | Правильное поведение |
|---|---|---|---|
| LWG 2058 | C++11 | 1. begin() требовался для поддержки замещающих типов2. не было указано, когда возвращённые итераторы станут недействительными |
1. не требуется 2. указано |
| P3016R6 | C++11 | функции, не являющиеся членами begin(), внесли несоответствие в доступ к диапазону
|
изменено begin() на функции-члены
|
Смотрите также
(C++11) |
получает итератор на конец для valarray (общедоступная функция-член) |