문제의 조건에
C++, C++11, C++14, C++17, C++ (Clang), C++11 (Clang), C++14 (Clang), C++17 (Clang): long long sum(std::vector<int> &a);
라고 되어있습니다.
만약에, 다른 파라미터를 사용하게 되면, 위에서 말한 함수와 다른 함수가 되어버리죠.(오버로딩)
컴파일러 에러는
undefined reference to `sum(std::vector<int, std::allocator<int> >&)
라고 뜹니다.
지정된 함수를 찾지 못한 경우입니다. 아마 문제조건에 나온 함수가 미리 선언된 뒤(프로토타입으로), 그 함수를 찾을 수가 없어서 나타나는 에러 같습니다.
따라서, 문제 조건으로 나오는 함수 시그니쳐를 ( 파라미터와 리턴타입, 함수이름 ) 쓰는 게 옳습니다.
mvat1225 3년 전
sum 과 sum2 의 차이는 매개변수를 &a를 받는것과 a를 받는 차이 입니다 . 하지만 sum2 의 방식으로
정답을 제출했을때는 컴파일 오류가 뜨더군요 이 둘의 차이점이 뭐죠? iter 로 접근하면 어차피 둘다 작동은 제대로 되던데
명확한 차이가 뭔지 잘 모르겠습니다.