알고리즘 (현대 C++)
현대 C++ 프로그래밍에 대 한 알고리즘을 사용 하는 좋습니다는 표준 템플릿 라이브러리 (STL).몇 가지 중요 한 예는 다음과 같습니다.
for_each를 통과 하는 기본 알고리즘입니다.(또한 transform 제자리에서 not 의미에 대 한 합니다.)
find_if을 검색 하는 기본 알고리즘입니다.
sortlower_bound, 정렬 및 검색 알고리즘 다른 기본.
비교자를 작성 하려면 엄격한 사용 < 를 사용 하 고 라는 람다 때 수행할 수 있습니다.
auto comp = []( const widget& w1, const widget& w2 )
{ return w1.weight() < w2.weight(); }
sort( v.begin(), v.end(), comp );
auto i = lower_bound( v.begin(), v.end(), comp );
루프
가능 하면 범위 기반 사용 for 루프 알고리즘 호출, 또는 손으로 쓴 루프 대신 합니다.copytransform, count_if, remove_if, 및 이와 같은 나머지는 버그 없이 코드를 작성 하기 쉽도록 자신의 의도 알 수 있으므로 필기 루프 보다 훨씬 더 나은입니다.많은 STL 알고리즘을 보다 효율적 구현을 최적화도.
대신 기존 C++ 처럼이.
for( auto i = strings.begin(); i != strings.end(); ++i ) {
:::
:::
}
auto i = v.begin();
for( ; i != v.end(); ++i ) {
if (*i > x && *i < y) break;
}
현대 C++를 다음과 같이 사용 합니다.
for_each( begin(strings), end(strings), []( string& s ) {
:::
:::
} );
auto i = find_if( begin(v), end(v), [=](int i) { return i > x && i < y; } );
For 루프 범위 기반
범위 기반 for 루프 되는 C + + 11 언어 기능, STL 알고리즘입니다.하지만 루프에 대 한 언급이이 토론에 필요 합니다.범위 기반 for 루프의 확장 된는 for 키워드와 값의 범위 내에서 반복 하는 루프를 작성할 수 있는 편리 하 고 효율적인 방법을 제공 합니다.STL 컨테이너, 문자열 및 배열 되어에 대 한 기본 범위를 기반으로 for 루프.사용자 정의 형식의 새 반복 구문을 사용 하려면 다음과 같은 지원을 추가 합니다.
A begin 구조체의 시작 부분에 반복기를 반환 하는 메서드 및 end 구조의 끝에 반복기를 반환 하는 메서드.
이러한 메서드는 반복기를 지원: operator*, operator!=, 및 operator++ (접두사 버전).
이러한 메서드는 함수를 독립 실행형 또는 구성원 수 있습니다.