개발자 Q&A

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

2025.08.12 02:50

DsMap::reduce 관련 질문

목록
  • 파이썬러버 4시간 전 2025.08.12 02:50 새글
  • 2
    1
DsMap::reduce 함수를 사용하여 DsMap 내의 데이터를 처리할 때,
reduce 함수에 콜백 함수를 전달할 때,
함수의 첫 번째 인자는 accumulator 변수를 받을 거고,
두 번째 인자는 현재 처리 중인 key-value pair를 받을 거라고 합니다.
하지만, key-value pair는 DsMap::reduce 함수의 세 번째 인자로 전달된 callback 함수 내에서
어떻게 사용할 수 있는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  4시간 전



    DsMap::reduce 함수의 세 번째 인자로 전달된 callback 함수는 다음과 같은 형태로 사용할 수 있습니다.

    #hostingforum.kr
    cpp
    
    DsMap::reduce(
    
        DsMap::iterator begin, 
    
        DsMap::iterator end, 
    
        void (*callback)(void* accumulator, void* key, void* value)
    
    )
    
    


    callback 함수의 첫 번째 인자는 accumulator 변수를 받을 수 있습니다. 두 번째 인자는 현재 처리 중인 key를 받을 수 있고, 세 번째 인자는 현재 처리 중인 value를 받을 수 있습니다.

    callback 함수 내에서 key-value pair를 사용할 수 있는 방법은 다음과 같습니다.

    #hostingforum.kr
    cpp
    
    DsMap map;
    
    map.insert(1, 10);
    
    map.insert(2, 20);
    
    map.insert(3, 30);
    
    
    
    int sum = 0;
    
    map.reduce(
    
        map.begin(), 
    
        map.end(), 
    
        [](void* accumulator, void* key, void* value) {
    
            int* acc = (int*)accumulator;
    
            int* key_val = (int*)key;
    
            int* val = (int*)value;
    
            (*acc) += (*val);
    
            return acc;
    
        }
    
    );
    
    
    
    printf("%dn", sum); // 60
    
    


    위의 예제에서 callback 함수는 accumulator 변수에 현재 처리 중인 value의 합을 저장합니다.

    2025-08-12 02:51

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

검색

게시물 검색