Spec-Zone.ru › C++

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

См. также

begin
(C++11)
получает итератор, указывающий на начало valarray
(функция-член общего назначения)

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

Spec-Zone.ru

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