std::ios에 left, right이 이미 있습니다. 변수 이름을 바꿔야 할 것 같습니다.
1300번 - K번째 수
std::ios에 left, right이 이미 있습니다. 변수 이름을 바꿔야 할 것 같습니다.
찾아보셨겠지만 비슷한 질문 사례가 있었습니다. (하단 링크 참고)
https://www.acmicpc.net/board/view/25788
보통의 ambiguous(모호함) 에러는 전역에 설정한 변수 또는 함수 선언들이
기존의 함수와 동일한 이름으로 등록하여 사용하려는 경우 일어납니다.
(윗글에도 나와 있지만 max, y0, y1 등과 같은 경우에도 충돌이 일어납니다.)
작성하신 분의 충돌 사례도 동일하게 왼쪽/오른쪽 정렬 출력에 해당되는 함수와 충돌한 사례입니다.
std::ios_base& std::left(std::ios_base&) std::ios_base& std::right(std::ios_base&)
+ 추가적으로 high 라는 변수는 선언되어 있지 않으니 코드 한번 더 확인 부탁드립니다 :)
그런데 제가 공유기 설치 2110 문제에서는 left, right를 사용했는데 문제가 없었거든요.
https://www.acmicpc.net/proble...
```
#include
#include
#include
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int N = 0, C = 0;
cin >> N >> C;
vectorhouse(N, 0);
for (int i; i < N; i++) cin >> house[i];
sort(house.begin(), house.end());
int left = 0, right = house[N-1];
while (left <= right) {
int iptime_cnt = 1;
int pre_i = 0;
int mid = (left + right) / 2;
for (int i = 1; i < N; i++) {
if (house[i] - house[pre_i] >= mid) {
pre_i = i;
iptime_cnt++;
}
}
if (iptime_cnt >= C)
left = mid + 1;
else right = mid - 1;
}
cout << right;
}
```
정말 감사합니다. 궁금증이 아주 시원하게 해결되었네요. 좋은 하루 되세요!!
댓글을 작성하려면 로그인해야 합니다.
hellowfriend 1년 전
다른 문제에서 코드를 제출 할 때는 left, right에 대해서 error: reference is ambiguous가 발생한 적이 없는데,
이번 경우에만 left, right에 대해서 error: reference is ambiguous가 발생하네요.
혹시 이유를 아시는 분은 알려주시면 감사하겠습니다.
좋은 하루 되세요!