STL vector와 관련된 질문입니다.

  • lht94
    lht94

    제가 갖고있는 STL책에 없는 내용같아 질문드립니다.

    vector<int> karastuba(vector<int> a,vector<int> b)
    {
        int an = a.size(),bn = b.size();
        if(an < bn)karastuba(b,a);
        if(an == 0||bn == 0)return vector<int>();
        if(an <= 50) return mutiply(a,b);
        int half=an/2;
        vector<int> a1(a.begin(),a.begin() + half);
        if(bn > half)bn=half;
        vector<int> b1(b.begin(),b.begin()+ bn);
        vector<int> a0(a.begin() + half,a.end());
        vector<int> b0(b.begin() + bn , b.end());
        vector<int> z2 = karastuba(a1 , b1);
        vector<int> z0 = karastuba(a0, b0);
        addto(a0,a1,0);
        addto(b0,b1,0);
        vector<int> z1 = karastuba(a0,b0);
        subfrom(z1,z0);
        subfrom(z1,z2);
        vector<int> ret;
        addto(ret,z2,half+half);
        addto(ret,z1,half);
        addto(ret,z0,0);
        return ret;
    }
    

    위 코드는 알고리즘문제해결전략의 카라츠바 빠른곱셈부분입니다.

    기저사례인

    a벡터 또는 b벡터가 비어있을때 리턴하는 return vector();
    의 의미가 정확히 뭔가요??
    저는 비어있지 않은 벡터를 리턴한다고 생각하는데

    맞는건가요 ??


    11년 전
1개의 댓글이 있습니다.
  • Kureyo
    Kureyo

    기본 생성자로 반환하는거니까 빈 벡터입니다


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