std:: begin (std::valarray)
|
template
<
class
T
>
/* 아래 참조 */ begin ( valarray < T > & v ) ; |
(1) | (C++11 이후) |
|
template
<
class
T
>
/* 아래 참조 */ begin ( const valarray < T > & v ) ; |
(2) | (C++11 이후) |
valarray
에 대한
std::begin
오버로드는 수치 배열의 첫 번째 요소를 참조하는 지정되지 않은 타입의 반복자를 반환합니다.
- mutable LegacyRandomAccessIterator 의 요구사항을 충족해야 하고,
|
(C++20부터) |
-
멤버 타입
value_type을 가져야 하며, 이는T이어야 하고, -
멤버 타입
reference을 가져야 하며, 이는T&이어야 합니다.
- 만족해야 합니다: 상수 LegacyRandomAccessIterator ,
|
(C++20부터) |
-
멤버 타입
value_type을 가져야 하며, 이는T이고, -
멤버 타입
reference을 가져야 하며, 이는const T&입니다.
이 함수에서 반환된 반복자는 멤버 함수
resize()
가
v
에 대해 호출되거나
v
의 수명이 종료될 때 무효화되며, 둘 중 먼저 발생하는 시점에 적용됩니다.
목차 |
매개변수
| v | - | 숫자 배열 |
반환값
숫자 배열의 첫 번째 값에 대한 반복자.
예외
구현 정의 예외를 던질 수 있습니다.
참고 사항
std::valarray
인수를 받는 다른 함수들과 달리,
begin()
은 valarray를 포함한 표현식에서 반환될 수 있는 대체 타입(예: 표현식 템플릿에 의해 생성된 타입)을 허용하지 않습니다:
std::
begin
(
v1
+
v2
)
는 이식성이 없으며, 대신
std::
begin
(
std::
valarray
<
T
>
(
v1
+
v2
)
)
를 사용해야 합니다.
이 함수의 의도는 range for loops 가 valarrays와 함께 작동할 수 있도록 하는 것이며, 컨테이너 의미론을 제공하는 것이 아닙니다.
예제
#include <algorithm> #include <iostream> #include <valarray> void show(const std::valarray<int>& 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}; 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. 명시됨 |
참고 항목
|
(C++11)
|
std::end
의 특수화
(함수 템플릿) |