c++ STL vector와 find함수에 대한 질문입니다.

  • AlgoPrince
    AlgoPrince
    vector<int> v;
    
        for (int i = 0; i < 10; ++i) {
            v.push_back(i);
        }
    
        const int p = find(v.begin(), v.end(), 4) - v.end();
    
        cout << p << endl;
    

    이 코드에서 왜 p값이 int 타입으로 나오는지 이해가 안가요...
    find는 iterator 또는 pointer를 반환하는 함수로 알고 있는데 왜 그런 거죠?

    find 는 에 있는 함수를 말합니다.
    계산해보면 값이 4가 나와요. 즉 4가 있는 index가 나오는건데 어떤 원리로 저게 가능한건지...


    7년 전
1개의 댓글이 있습니다.
  • AlgoPrince
    AlgoPrince

    아 이해했어요.
    interator - interator 니깐 당연히 그 차이에 해당하는 정수가 나오겠군요. 왜냐하면 iterator + int = iterator니까요!!


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