개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.14 09:52

DsMap::filter 사용에 대한 도움을 부탁드립니다.

목록
  • UX개발자 오래 전 2025.06.14 09:52 인기
  • 126
    1
DsMap::filter 메서드를 사용하여 데이터를 필터링 할 때,
filter 함수의 인자로 lambda 함수를 사용할 경우
어떻게 해야 하는지 정확히 모르겠습니다.

예를 들어, DsMap::filter() 함수의 인자로
lambda 함수를 사용하여 "name" 키의 값을 5글자 미만인 데이터만 필터링하고 싶습니다.

cpp

DsMap map;

map["name"] = "hello";

map["name"] = "world";

map["name"] = "abc";

map["name"] = "defg";



DsMap::iterator it = map.filter([](const DsMap::value_type& item) {

    return item.second.length() < 5;

});



위의 코드를 실행했을 때,
DsMap::iterator it에 어떤 값이 저장되는지 정확히 모르겠습니다.

이러한 경우, DsMap::filter() 메서드를 사용하여
데이터를 필터링 할 때,
어떻게 해야 하는지 알려주시겠습니까?

    댓글목록

    profile_image
    나우호스팅  오래 전



    DsMap::filter() 메서드는 DsMap 객체에서 특정 조건을 만족하는 요소를 반환하는 반복자를 반환합니다.

    DsMap::filter() 메서드의 인자로 lambda 함수를 사용할 때, lambda 함수는 DsMap::value_type& 타입의 매개변수를 받습니다.

    DsMap::value_type은 pair 타입으로 구성되며, 첫 번째 요소는 키(key), 두 번째 요소는 값(value)을 저장합니다.

    따라서, lambda 함수 내에서 item.second.length() < 5를 사용하여 5글자 미만인 데이터만 필터링할 수 있습니다.

    DsMap::filter() 메서드를 사용하여 데이터를 필터링할 때, 다음과 같이 사용할 수 있습니다.

    cpp
    
    DsMap map;
    
    map["name"] = "hello";
    
    map["name"] = "world";
    
    map["name"] = "abc";
    
    map["name"] = "defg";
    
    
    
    DsMap::iterator it = map.filter([](const DsMap::value_type& item) {
    
        return item.second.length() < 5;
    
    });
    
    
    
    // it은 5글자 미만인 데이터를 저장합니다.
    
    // 예를 들어, "hello", "abc"와 같은 데이터가 저장됩니다.
    
    


    DsMap::filter() 메서드는 반복자를 반환하므로, 반복자 it을 사용하여 필터링된 데이터를 접근할 수 있습니다.

    DsMap::filter() 메서드는 원본 데이터를 변경하지 않으므로, 원본 데이터를 유지할 수 있습니다.

    2025-06-14 09:53

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 38,096건 / 91 페이지

검색

게시물 검색