STL for_each
3717 단어 C/C++
레코드 foreach 의 사용법.
참고 자료
C++표준 내용
'25.2.4 For each[alg.foreach]'에서 발췌 했다.
template
Function for_each(InputIterator first, InputIterator last, Function f);
for_each 알고리즘
이 장 은 첫 번 째 참고 페이지 의 내용 이다.
함수 원형
template
Function for_each (InputIterator first, InputIterator last, Function fn);
기능.
교체 기[first,last)구간 의 모든 요 소 를 함수 fn 으로 호출 합 니 다.
Applies function fn to each of the elements in the range [first,last).
The behavior of this template function is equivalent to:
template
Function for_each(InputIterator first, InputIterator last, Function fn)
{
while (first!=last) {
fn (*first);
++first;
}
return fn; // or, since C++11: return move(fn);
}
Parameters
설명:sequence 의 교체 기 를 언급 하지만 sequence container 만 의 교체 기 는 아 닙 니 다.앞에서 발췌 한 c++standard 와 같이 이 점 을 요구 하지 않 았 습 니 다.아래 의 예시 에서 우 리 는http://www.cplusplus.com/reference/algorithm/for_each/](http://www.cplusplus.com/reference/algorithm/for_each/)를 바탕 으로 set 의 예 를 추가 한 것 도 이 점 을 설명 했다.
Example
코드
#include // std::cout
#include // std::for_each
#include // std::vector
#include // std::set
void myfunction (int i) { // function:
std::cout << ' ' << i;
}
struct myclass { // function object type:
void operator() (int i) {std::cout << ' ' << i;}
} myobject;
int main () {
std::vector myvector;
myvector.push_back(10);
myvector.push_back(20);
myvector.push_back(30);
std::cout << "myvector contains:";
for_each (myvector.begin(), myvector.end(), myfunction);
std::cout << '
';
// or:
std::cout << "myvector contains:";
for_each (myvector.begin(), myvector.end(), myobject);
std::cout << '
';
//set
std::set values(myvector.begin(), myvector.end());
std::cout << "set contains:";
for_each(values.begin(), values.end(), myfunction);
std::cout << '
';
return 0;
}
Output
myvector contains: 10 20 30
myvector contains: 10 20 30
set contains: 10 20 30
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
09.문자 / 메모리영역//메모리 영역 스택 데이터 ROM(코드) //읽기전용메모리 문자 char(1),wchar(2) 바이트 . char c = 'a'; wchar_t wc = L'a';...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.