Spec-Zone.ru › C++

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() заменены функциями-членами

См. также

end
(C++11)
получает итератор за последним элементом valarray
(открытая функция-член)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/numeric/valarray/begin

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API