std::valarray<T>::begin
cppreference.net에서
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()을 대신 사용해야 합니다.
이 함수의 의도는 valarray에서 범위 기반 for 루프가 작동할 수 있도록 하는 것이며, 컨테이너 의미를 제공하는 것이 아닙니다.
예제
이 코드 실행
#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 의 끝-지난 반복자를 얻습니다 (공개 멤버 함수) |