반복자를 사용하여 점 사이의 거리를 계산할 때 거리가 잘못된 이유는 무엇입니까?
거리 계산에 올바른 반복자 사용
벡터에 저장된 점 사이의 거리를 계산하려고 할 때 코드에 오류가 발생했습니다. 문제는 반복자를 사용하는 방식에 있는 것 같습니다.
귀하의 코드는 벡터 내의 요소에 대한 포인터인 std::Vector 반복자를 사용합니다. 그러나 이러한 반복자를 거리 함수에 직접 전달하면 점 개체 자체에 대한 포인터가 필요합니다. 이러한 불일치로 인해 잘못된 결과가 발생합니다.
이 문제를 해결하려면 다음 두 가지 옵션이 있습니다.
옵션 1: 반복자 참조 해제
해당 포인트 객체에 대한 참조를 얻기 위한 반복자입니다. 이는 * 연산자를 사용하여 수행할 수 있습니다. 수정된 코드는 다음과 같습니다.
<code class="C++">for (ii = po.begin(); ii != po.end(); ii++) { for (jj = po.begin(); jj != po.end(); jj++) { cout << distance(*ii, *jj) << " "; } }</code>
옵션 2: 함수에서 참조 사용
또는 거리 함수를 수정하여 점 개체에 대한 참조를 직접 가져올 수 있습니다.
<code class="C++">float distance(const point& p1, const point& p2) { return sqrt((p1.x - p2.x)*(p1.x - p2.x) + (p1.y - p2.y)*(p1.y - p2.y)); }</code>
이 방법으로 반복자를 사용하여 거리 함수를 직접 호출할 수 있습니다.
<code class="C++">for (ii = po.begin(); ii != po.end(); ii++) { for (jj = po.begin(); jj != po.end(); jj++) { cout << distance(*ii, *jj) << " "; } }</code>
이러한 방법 중 하나를 사용하면 다음과 같은 점 쌍 사이의 정확한 거리 계산을 얻어야 합니다. 당신의 벡터.
위 내용은 반복자를 사용하여 점 사이의 거리를 계산할 때 거리가 잘못된 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











C 언어 함수에 의해 반환 된 값 유형은 무엇입니까? 반환 값을 결정하는 것은 무엇입니까?

STL (정렬, 찾기, 변환 등)의 알고리즘을 효율적으로 사용하려면 어떻게합니까?
