프로그래밍 검색 블로그

C++ ranges view::drop, view::drop_while, view::drop_exactly 본문

C++ ranges

C++ ranges view::drop, view::drop_while, view::drop_exactly

코딩조무사 2017. 10. 8. 16:12


drop

1
2
3
4
    vector<int> v = view::iota(010)
    | view::drop(2);
    
    cout << view::all(v) << endl;
cs

처음부터 x개의 원소를 제외하고 나머지를 반환한다. 

요소가 없거나 부족하다면  빈 range를 반환한다. 

skip(x) 비슷하게 생각하면 될듯 


출력: [2,3,4,5,6,7,8,9]





drop_exactly


1
2
3
4
    vector<int> v = view::iota(010)
    | view::drop_exactly(100);
    
    cout << view::all(v) << endl;
cs

drop과 같지만 이쪽은 요소가 없거나 부족하다면

std::bad_alloc을 던진다

출력: std::bad_alloc




drop_while

1
2
3
4
5
6
    vector<int> v = view::iota(010)
    | view::drop_while([](int e){
        return e < 6;
    });
    
    cout << view::all(v) << endl;
cs


요소의 맨앞부터 조건을 함수에 넣어서 false 가 나올때까지 제거한다.


출력: [6,7,8,9]





'C++ ranges' 카테고리의 다른 글

C++ ranges view::replace, view::replace_if  (0) 2017.10.08
c++ ranges view:transform  (0) 2017.10.08
C++ ranges view::group_by  (0) 2017.10.08
C++ ranges view::c_str  (0) 2017.10.08
C++ ranges view::join (flatMap)  (0) 2017.10.08
Comments