C ++ 11 언어의 몇 가지 새로운 기능 - 루프에 대한 범위 기반

1. 루프에 대한 범위 기반

{(콜 자명 한 일 입니)에 대한
 문
}

 

예를 들면 :

위한 ( int로 {I를 2 , 3 , 5 , 7 , 9 , 13 , 17 , 19 {}) 
    표준 : COUT << I << 표준 : ENDL; 
}

 

표준 : : 벡터 < 더블 > VEC; 
... 
 (자동 및 ELEM : VEC) { 
    ELEM * = 3 ; 
}

여기서 참고로 ELEM를 선언하는 것이 중요하기 때문에 벡터의 요소의 로컬 복사본에 루프 행위에 대한 본문에 그렇지 않으면 문 (때로는 유용 할 수 있음).

이 복사 생성자 및 각 요소에 대해 소멸자를 호출하지 않도록하는 것을 의미합니다, 당신은 일반적으로 일정한 기준으로 현재 요소를 선언해야합니다. 다음 따라서, 컬렉션의 모든 요소를 ​​인쇄하는 일반적인 기능을 구현한다 :

서식 <TYPENAME T>
 공극 printElements ( CONST T & 콜) 
{ 
     ( CONST 자동 및 ELEM : 콜) { 
        표준 : COUT << ELEM << 표준 : ENDL; 
    } 
}

범위 기반 루프 기간 동안 다음과 같은 코드에 해당합니다 :

대한 (자동 _pos = coll.begin ();! _pos = coll.end (); ++ _pos) {
     const를 자동 및 ELEM = * _pos; 
    표준 : COUT << ELEM << 표준 : ENDL; 
}

 

INT의 배열 [] = { 1 , 2 , 3 , 4 , 5 };
 합 = 0 ; // 모든 요소의 공정 합 
 ( INT X : 배열) { 
    합계 + = X; 
} 
 (자동 ELEM {합계, 합계 * 2 , * 합계 4 }) { // 인쇄 15 30 60 
    표준 : COUT << ELEM << 표준 : ENDL; 
}

 

HTTPS : //www.cnblogs.com/davidgu/p/4607897.html 재현

추천

출처blog.csdn.net/weixin_34354173/article/details/93802989