table of contents
std::begin(std::valarray)(3) | C++ Standard Libary | std::begin(std::valarray)(3) |
NAME¶
std::begin(std::valarray) - std::begin(std::valarray)
Synopsis¶
template< class T > (1) (since C++11)
/*unspecified1*/ begin( valarray<T>& v );
template< class T > (2) (since C++11)
/*unspecified2*/ begin( const valarray<T>& v );
The overload of std::begin for valarray returns an iterator of unspecified
type
referring to the first element in the numeric array.
1) The return type meets the requirements of mutable
LegacyRandomAccessIterator.
2) The return type meets the requirements of constant
LegacyRandomAccessIterator.
The iterator obtained from this function is invalidated when the member
function
resize() is called on the array v or when the lifetime of v ends, whichever
comes
first.
Parameters¶
v - a numeric array
Return value¶
Iterator to the first value in the numeric array.
Exceptions¶
May throw implementation-defined exceptions.
Notes¶
Unlike other functions that take std::valarray arguments, begin()
cannot accept the
replacement types (such as the types produced by expression templates) that
may be
returned from expressions involving valarrays: std::begin(v1 + v2) is not
portable,
std::begin(std::valarray<T>(v1 + v2)) has to be used instead.
The intent of this function is to allow range for loops to work with
valarrays, not
to provide container semantics.
Example¶
// Run this code
#include <iostream>
#include <valarray>
#include <algorithm>
auto show = [](std::valarray<int> const& v) {
std::for_each(std::begin(v), std::end(v), [](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 };
std::for_each(std::begin(z), std::end(z), [](char c) { std::cout << c;
});
}
Output:¶
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++!
See also¶
std::end(std::valarray) specializes std::end
(C++11) (function template)
2022.07.31 | http://cppreference.com |