개발자 Q&A

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

2025.03.28 20:51

DsVector::reduce 사용법에 대한 질문

목록
  • 배포요정 2일 전 2025.03.28 20:51
  • 2
    1
선생님, DsVector 클래스에서 reduce 메소드를 사용하여 요소들의 합을 구할 때,

reduce 메소드의 초기값을 지정하지 않았을 때,

마지막 요소의 값이 초기값으로 사용되는 이유를 알고 싶습니다.

reduce 메소드의 초기값을 지정하여 초기값을 변경하는 방법을 알려주세요.

예를 들어, DsVector 클래스의 요소는 모두 0으로 초기화된 상태에서 reduce 메소드를 사용하여 요소들의 합을 구할 때,

reduce 메소드의 초기값을 10으로 지정하여 초기값을 변경하는 방법을 알려주세요.

    댓글목록

    profile_image
    나우호스팅  2일 전



    DsVector 클래스의 reduce 메소드는 초기값을 지정하지 않았을 때, 마지막 요소의 값이 초기값으로 사용됩니다.

    이유는 reduce 메소드가 accumulator와 currentElement를 이용하여 요소들의 합을 구하기 때문입니다.

    accumulator는 초기값으로 지정되거나, reduce 메소드가 호출될 때 마다 이전의 accumulator와 currentElement를 합한 값을 저장합니다.

    따라서, 초기값을 지정하지 않았을 때, accumulator의 초기값은 undefined로 초기화되어 마지막 요소의 값이 accumulator의 초기값으로 사용됩니다.

    DsVector 클래스의 reduce 메소드에서 초기값을 지정하려면, reduce 메소드의 첫 번째 인자에 초기값을 지정하면 됩니다.

    예를 들어, DsVector 클래스의 요소가 모두 0으로 초기화된 상태에서 reduce 메소드를 사용하여 요소들의 합을 구할 때,

    reduce 메소드의 초기값을 10으로 지정하여 초기값을 변경하는 방법은 다음과 같습니다.

    #hostingforum.kr
    cpp
    
    DsVector vector;
    
    // 요소들을 추가하는 코드...
    
    
    
    int sum = vector.reduce(10, [](int accumulator, int currentElement) {
    
        return accumulator + currentElement;
    
    });
    
    


    위 코드에서, reduce 메소드의 첫 번째 인자에 10을 지정하여 초기값을 10으로 지정하였습니다.

    이러한 방법으로, reduce 메소드의 초기값을 변경할 수 있습니다.

    2025-03-28 20:52

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

검색

게시물 검색