QUADTREE 문제 컴파일 실패 질문입니다.

  • rkd628
    rkd628

    쿼드트리 문제를 책을 보며 풀었습니다.

    제출을 하였는데 , 계속해서

    submission.cpp: In function ‘int main()’:
    submission.cpp:42:36: error: invalid initialization of non-const reference of type ‘std::basic_string::iterator& {aka __gnu_cxx::__normal_iterator >&}’ from an rvalue of type ‘std::basic_string::iterator {aka __gnu_cxx::__normal_iterator >}’
    submission.cpp:14:8: error: in passing argument 1 of ‘std::string reverse1(std::basic_string::iterator&)’

    에러메시지로 이것이 뜨고 컴파일 실패가 됩니다. 이것이 무슨 의미인지 모르겠네요ㅠ
    정확히 무엇때문에 컴파일 오류가 생기는 건가요?

    소스코드가 어렵지 않아 소스코드도 올립니다

    #include<iostream>
    #include<string>
    using namespace std;
    
    #define FOR(i,end) for(int i = 0; i < (end) ; ++i ) 
    
    string reverse1(string::iterator& it )
    {
        char head = *it ;
        it++ ;
        if ( head == 'b' || head == 'w' )
            return string(1,head) ;
    
        string upperLeft = reverse1(it) ;
        string upperRight = reverse1(it) ;
        string lowerLeft = reverse1(it) ;
        string lowerRight = reverse1(it) ;
    
        return (string("x") + lowerLeft + lowerRight + upperLeft + upperRight );
    
    }
    
    
    int main()
    {
    
        int T ;
        cin>>T;
        string str ;
        while(T--)
        {
            cin>>str ;
    
            //string::iterator it ;
            string ans = reverse1(str.begin());
            cout<<ans<<endl;
    
        }
    
        return 0 ;
    }
    

    10년 전
3개의 댓글이 있습니다.
  • Being
    Being

    str.begin()은 lvalue가 아니므로 레퍼런스를 가져갈 수 없습니다.


    10년 전 link
  • rkd628
    rkd628

    덕분에 해결했습니다.
    감사합니다 ^^!


    10년 전 link
  • rlatkddn212
    rlatkddn212

    ㅎ.ㅎ 저저도 이이고 보보고 핵해결해결했해결했네해결했네요 뭦뭐지 키키독키도귿키도그드 두두번두번쳐두번쳐져두번쳐져요;; 암암튼 감감상감사용 ㅎㅎㅎ


    10년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.