std::valarray<T>::begin
iterator begin(); | (1) | (начиная с C++11) |
const_iterator begin() const; | (2) | (начиная с C++11) |
Возвращает итератор, указывающий на первый элемент числового массива.
Итератор, возвращённый этой функцией, становится недействительным при вызове функции-члена resize() для v или при завершении времени жизни v — в зависимости от того, что произойдёт раньше.
Параметры
| v | - | числовой массив |
Возвращаемое значение
Итератор на первый элемент числового массива.
Исключения
Может выбрасывать исключения, определяемые реализацией.
Примечания
В отличие от других функций, принимающих аргументы std::valarray, begin() не может принимать типы-заменители (например, типы, создаваемые шаблонами выражений), которые могут возвращаться выражениями с участием valarray: (v1 + v2).begin() непереносим, поэтому вместо него необходимо использовать std::valarray<T>(v1 + v2).begin().
Эта функция предназначена для поддержки циклов range for с valarray, а не для предоставления семантики контейнера.
Пример
#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 (открытая функция-член) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/numeric/valarray/begin